
size_t rpl_mbrtowc(wchar_t *pwc,char *s,size_t n,mbstate_t *ps)

{
  undefined3 extraout_var;
  _Bool _Var7;
  int iVar1;
  undefined1 *puVar2;
  int iVar3;
  size_t sVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined4 uVar8;
  FILE *fp;
  byte *pbVar9;
  uint uVar10;
  undefined *puVar11;
  code *pcVar12;
  undefined1 auStack_6c [32];
  FILE *pFStack_4c;
  byte *pbStack_48;
  size_t sStack_44;
  uint *puStack_40;
  wchar_t wc;
  undefined1 *local_14;
  
  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;
  if (s == (char *)0x0) {
    n = 1;
    pbVar9 = PTR_LAB_00034108 + 0x1d00;
    pwc = &wc;
LAB_0001d1bc:
    s = (char *)pbVar9;
    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);
    pbStack_48 = pbVar9;
    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {
      *pwc = (uint)*pbVar9;
      sStack_44 = 1;
    }
  }
  else {
    if (n != 0) {
      pbVar9 = (byte *)s;
      if (pwc == (wchar_t *)0x0) {
        pwc = &wc;
      }
      goto LAB_0001d1bc;
    }
    sStack_44 = 0xfffffffe;
    pbStack_48 = (byte *)s;
  }
  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {
    return sStack_44;
  }
  puVar2 = local_14;
  puVar11 = PTR___stack_chk_fail_000343b0;
  (*(code *)PTR___stack_chk_fail_000343b0)();
  pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c);
  puStack_40 = (uint *)pwc;
  if (*(char *)n == '\0') {
    *puVar2 = 0;
  }
  else {
    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {
      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);
      if (iVar1 < 0) {
        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;
        puVar2 = (undefined1 *)0x0;
        goto LAB_0001d350;
      }
      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)
      ;
      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);
      uVar8 = 1;
      if (iVar3 != 0) {
        uVar8 = 0xffffffff;
      }
      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;
      (**(code **)(puVar11 + 0x17054))(iVar1);
      iVar1 = *(int *)(puVar11 + 0x16e88);
    }
    else {
      iVar1 = *(int *)(puVar11 + 0x16e88);
    }
    if (*(int *)(iVar1 + 0x45d0) < 0) {
      puVar2 = (undefined1 *)0x0;
    }
    else {
      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);
      if ((iVar1 + 0x1bU < 0xfc1) ||
         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {
        iVar1 = (**(code **)(puVar11 + 0x17038))
                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);
        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);
      }
    }
  }
LAB_0001d350:
  if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {
    pcVar12 = *(code **)(puVar11 + 0x17140);
    fp = pFStack_4c;
    (*pcVar12)();
    iVar1 = (**(code **)(pcVar12 + 0x16f40))();
    uVar10 = fp->_flags;
    sVar4 = rpl_fclose(fp);
    if ((uVar10 & 0x20) == 0) {
      if (sVar4 != 0) {
        if (iVar1 == 0) {
          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();
          sVar4 = -(uint)(*piVar5 != 9);
        }
        else {
          sVar4 = 0xffffffff;
        }
      }
    }
    else if (sVar4 == 0) {
      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();
      *puVar6 = 0;
      sVar4 = 0xffffffff;
    }
    else {
      sVar4 = 0xffffffff;
    }
    return sVar4;
  }
  return (size_t)puVar2;
}



undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)

{
  int iVar1;
  undefined1 *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  byte *pbVar8;
  uint uVar9;
  undefined *puVar10;
  code *pcVar11;
  undefined1 auStack_6c [32];
  uint *puStack_4c;
  byte *pbStack_48;
  undefined1 *puStack_44;
  uint *puStack_40;
  uint uStack_18;
  undefined1 *local_14;
  
  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;
  if (param_2 == (byte *)0x0) {
    param_3 = (char *)0x1;
    pbVar8 = PTR_LAB_00034108 + 0x1d00;
    param_1 = &uStack_18;
LAB_0001d1bc:
    param_2 = pbVar8;
    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);
    pbStack_48 = pbVar8;
    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {
      *param_1 = (uint)*pbVar8;
      puStack_44 = (undefined1 *)0x1;
    }
  }
  else {
    if (param_3 != (char *)0x0) {
      pbVar8 = param_2;
      if (param_1 == (uint *)0x0) {
        param_1 = &uStack_18;
      }
      goto LAB_0001d1bc;
    }
    puStack_44 = &SUB_fffffffe;
    pbStack_48 = param_2;
  }
  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {
    return puStack_44;
  }
  puVar2 = local_14;
  puVar10 = PTR___stack_chk_fail_000343b0;
  (*(code *)PTR___stack_chk_fail_000343b0)();
  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);
  puStack_40 = param_1;
  if (*param_3 == '\0') {
    *puVar2 = 0;
  }
  else {
    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {
      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);
      if (iVar1 < 0) {
        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;
        puVar2 = (undefined1 *)0x0;
        goto LAB_0001d350;
      }
      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)
      ;
      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);
      uVar6 = 1;
      if (iVar3 != 0) {
        uVar6 = 0xffffffff;
      }
      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;
      (**(code **)(puVar10 + 0x17054))(iVar1);
      iVar1 = *(int *)(puVar10 + 0x16e88);
    }
    else {
      iVar1 = *(int *)(puVar10 + 0x16e88);
    }
    if (*(int *)(iVar1 + 0x45d0) < 0) {
      puVar2 = (undefined1 *)0x0;
    }
    else {
      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);
      if ((iVar1 + 0x1bU < 0xfc1) ||
         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {
        iVar1 = (**(code **)(puVar10 + 0x17038))
                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);
        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);
      }
    }
  }
LAB_0001d350:
  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {
    pcVar11 = *(code **)(puVar10 + 0x17140);
    puVar7 = puStack_4c;
    (*pcVar11)();
    iVar1 = (**(code **)(pcVar11 + 0x16f40))();
    uVar9 = *puVar7;
    puVar2 = (undefined1 *)rpl_fclose(puVar7);
    if ((uVar9 & 0x20) == 0) {
      if (puVar2 != (undefined1 *)0x0) {
        if (iVar1 == 0) {
          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();
          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);
        }
        else {
          puVar2 = (undefined1 *)0xffffffff;
        }
      }
    }
    else if (puVar2 == (undefined1 *)0x0) {
      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();
      *puVar5 = 0;
      puVar2 = (undefined1 *)0xffffffff;
    }
    else {
      puVar2 = (undefined1 *)0xffffffff;
    }
    return puVar2;
  }
  return puVar2;
}


lui gp,0x2
addiu gp,gp,-0x10a0
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x10(sp)
lw v0,-0x7d04(gp)
lw v0,0x0(v0)
sw v0,0x1c(sp)
beq a1,zero,0x0001d218
_nop
or s2,a0,zero
beq a2,zero,0x0001d254
_or s0,a1,zero
beq a0,zero,0x0001d210
_nop
or a1,s0,zero
or a0,s2,zero
lw t9,-0x7d48(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s1,v0,zero
sltiu v0,v0,-0x2
beq v0,zero,0x0001d22c
_or a0,zero,zero
or v0,s1,zero
lw a0,0x1c(sp)
lw v1,-0x7d04(gp)
lw v1,0x0(v1)
bne a0,v1,0x0001d25c
_lw ra,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x30
b 0x0001d1bc
_addiu s2,sp,0x18
li a2,0x1
lw s0,-0x7fc8(gp)
addiu s0,s0,0x1d00
b 0x0001d1bc
_addiu s2,sp,0x18
lw t9,-0x7e80(gp)
bal 0x0001d700
_nop
lw gp,0x10(sp)
bne v0,zero,0x0001d1e8
_or v0,s1,zero
lbu v0,0x0(s0)
sw v0,0x0(s2)
b 0x0001d1e4
_li s1,0x1
b 0x0001d1e4
_li s1,-0x2
lw t9,-0x7d20(gp)
jalr t9
_nop
nop
nop
(translation_unit "undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}\n\n" (function_definition "undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" type_identifier (pointer_declarator "* rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" * (function_declarator "rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,char *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined1 auStack_6c [32];" type_identifier (array_declarator "auStack_6c [32]" identifier [ number_literal ]) ;) (declaration "uint *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "byte *pbStack_48;" type_identifier (pointer_declarator "*pbStack_48" * identifier) ;) (declaration "undefined1 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "uint uStack_18;" type_identifier identifier ;) (declaration "undefined1 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier = (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }" { (expression_statement "param_3 = (char *)0x1;" (assignment_expression "param_3 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar8 = PTR_LAB_00034108 + 0x1d00;" (assignment_expression "pbVar8 = PTR_LAB_00034108 + 0x1d00" identifier = (binary_expression "PTR_LAB_00034108 + 0x1d00" identifier + number_literal)) ;) (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" identifier = (pointer_expression "&uStack_18" & identifier)) ;) (labeled_statement "LAB_0001d1bc:\n    param_2 = pbVar8;" statement_identifier : (expression_statement "param_2 = pbVar8;" (assignment_expression "param_2 = pbVar8" identifier = identifier) ;)) (expression_statement "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);" (assignment_expression "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mbrtowc_00034388)(param_1)" (parenthesized_expression "(*(code *)PTR_mbrtowc_00034388)" ( (pointer_expression "*(code *)PTR_mbrtowc_00034388" * (cast_expression "(code *)PTR_mbrtowc_00034388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "pbStack_48 = pbVar8;" (assignment_expression "pbStack_48 = pbVar8" identifier = identifier) ;) (if_statement "if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" if (parenthesized_expression "((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0))" ( (binary_expression "(&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)" (parenthesized_expression "(&SUB_fffffffe <= puStack_44)" ( (binary_expression "&SUB_fffffffe <= puStack_44" (pointer_expression "&SUB_fffffffe" & identifier) <= identifier) )) && (parenthesized_expression "(iVar1 = hard_locale(0), iVar1 == 0)" ( (comma_expression "iVar1 = hard_locale(0), iVar1 == 0" (assignment_expression "iVar1 = hard_locale(0)" identifier = (call_expression "hard_locale(0)" identifier (argument_list "(0)" ( number_literal )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" { (expression_statement "*param_1 = (uint)*pbVar8;" (assignment_expression "*param_1 = (uint)*pbVar8" (pointer_expression "*param_1" * identifier) = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puStack_44 = (undefined1 *)0x1;" (assignment_expression "puStack_44 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" else (compound_statement "{\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" { (if_statement "if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" { (expression_statement "pbVar8 = param_2;" (assignment_expression "pbVar8 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1 = &uStack_18;\n      }" { (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" identifier = (pointer_expression "&uStack_18" & identifier)) ;) })) (goto_statement "goto LAB_0001d1bc;" goto statement_identifier ;) })) (expression_statement "puStack_44 = &SUB_fffffffe;" (assignment_expression "puStack_44 = &SUB_fffffffe" identifier = (pointer_expression "&SUB_fffffffe" & identifier)) ;) (expression_statement "pbStack_48 = param_2;" (assignment_expression "pbStack_48 = param_2" identifier = identifier) ;) }))) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }" if (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc)" ( (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier == (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return puStack_44;\n  }" { (return_statement "return puStack_44;" return identifier ;) })) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000343b0;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000343b0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000343b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000343b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000343b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000343b0" * (cast_expression "(code *)PTR___stack_chk_fail_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);" (assignment_expression "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c)" identifier = (cast_expression "(uint *)**(undefined4 **)(puVar10 + 0x1715c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar10 + 0x1715c)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x1715c)" * (cast_expression "(undefined4 **)(puVar10 + 0x1715c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1715c)" ( (binary_expression "puVar10 + 0x1715c" identifier + number_literal) ))))))) ;) (expression_statement "puStack_40 = param_1;" (assignment_expression "puStack_40 = param_1" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *puVar2 = 0;\n  }" { (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" else (compound_statement "{\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" { (if_statement "if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" if (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" identifier = (call_expression "(**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" (parenthesized_expression "(**(code **)(puVar10 + 0x170dc))" ( (pointer_expression "**(code **)(puVar10 + 0x170dc)" * (pointer_expression "*(code **)(puVar10 + 0x170dc)" * (cast_expression "(code **)(puVar10 + 0x170dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170dc)" ( (binary_expression "puVar10 + 0x170dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" ( (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3534" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d350;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;" (call_expression "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" ( (pointer_expression "**(code **)(puVar10 + 0x17038)" * (pointer_expression "*(code **)(puVar10 + 0x17038)" * (cast_expression "(code **)(puVar10 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17038)" ( (binary_expression "puVar10 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3544" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" identifier = (call_expression "(**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" (parenthesized_expression "(**(code **)(puVar10 + 0x170c0))" ( (pointer_expression "**(code **)(puVar10 + 0x170c0)" * (pointer_expression "*(code **)(puVar10 + 0x170c0)" * (cast_expression "(code **)(puVar10 + 0x170c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170c0)" ( (binary_expression "puVar10 + 0x170c0" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = 0xffffffff;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(puVar10 + 0x17054))(iVar1);" (call_expression "(**(code **)(puVar10 + 0x17054))(iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17054))" ( (pointer_expression "**(code **)(puVar10 + 0x17054)" * (pointer_expression "*(code **)(puVar10 + 0x17054)" * (cast_expression "(code **)(puVar10 + 0x17054)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17054)" ( (binary_expression "puVar10 + 0x17054" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" else (compound_statement "{\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" { (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) ))))) ;) }))) (if_statement "if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x45d0) < 0)" ( (binary_expression "*(int *)(iVar1 + 0x45d0) < 0" (pointer_expression "*(int *)(iVar1 + 0x45d0)" * (cast_expression "(int *)(iVar1 + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x45d0)" ( (binary_expression "iVar1 + 0x45d0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      puVar2 = (undefined1 *)0x0;\n    }" { (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" else (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3)" identifier = (call_expression "(**(code **)(puVar10 + 0x170ec))(param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x170ec))" ( (pointer_expression "**(code **)(puVar10 + 0x170ec)" * (pointer_expression "*(code **)(puVar10 + 0x170ec)" * (cast_expression "(code **)(puVar10 + 0x170ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170ec)" ( (binary_expression "puVar10 + 0x170ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" if (parenthesized_expression "((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0))" ( (binary_expression "(iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" (parenthesized_expression "(iVar1 + 0x1bU < 0xfc1)" ( (binary_expression "iVar1 + 0x1bU < 0xfc1" (binary_expression "iVar1 + 0x1bU" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" ( (comma_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0" (assignment_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))()" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar10 + 0x17108))()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar10 + 0x17108))()" (parenthesized_expression "(**(code **)(puVar10 + 0x17108))" ( (pointer_expression "**(code **)(puVar10 + 0x17108)" * (pointer_expression "*(code **)(puVar10 + 0x17108)" * (cast_expression "(code **)(puVar10 + 0x17108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17108)" ( (binary_expression "puVar10 + 0x17108" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "puVar2 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" identifier = (call_expression "(**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" ( (pointer_expression "**(code **)(puVar10 + 0x17038)" * (pointer_expression "*(code **)(puVar10 + 0x17038)" * (cast_expression "(code **)(puVar10 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17038)" ( (binary_expression "puVar10 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x355c" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);" (call_expression "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x17124))" ( (pointer_expression "**(code **)(puVar10 + 0x17124)" * (pointer_expression "*(code **)(puVar10 + 0x17124)" * (cast_expression "(code **)(puVar10 + 0x17124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17124)" ( (binary_expression "puVar10 + 0x17124" identifier + number_literal) ))))) )) (argument_list "(puVar2 + iVar1,param_3)" ( (binary_expression "puVar2 + iVar1" identifier + identifier) , identifier ))) ;) })) }))) }))) (labeled_statement "LAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" statement_identifier : (if_statement "if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" if (parenthesized_expression "(puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c))" ( (binary_expression "puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)" identifier != (cast_expression "(uint *)**(int **)(puVar10 + 0x1715c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar10 + 0x1715c)" * (pointer_expression "*(int **)(puVar10 + 0x1715c)" * (cast_expression "(int **)(puVar10 + 0x1715c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1715c)" ( (binary_expression "puVar10 + 0x1715c" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" { (expression_statement "pcVar11 = *(code **)(puVar10 + 0x17140);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x17140)" identifier = (pointer_expression "*(code **)(puVar10 + 0x17140)" * (cast_expression "(code **)(puVar10 + 0x17140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17140)" ( (binary_expression "puVar10 + 0x17140" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = puStack_4c;" (assignment_expression "puVar7 = puStack_4c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x16f40))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x16f40))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x16f40))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16f40))" ( (pointer_expression "**(code **)(pcVar11 + 0x16f40)" * (pointer_expression "*(code **)(pcVar11 + 0x16f40)" * (cast_expression "(code **)(pcVar11 + 0x16f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16f40)" ( (binary_expression "pcVar11 + 0x16f40" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar7;" (assignment_expression "uVar9 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar2 = (undefined1 *)rpl_fclose(puVar7);" (assignment_expression "puVar2 = (undefined1 *)rpl_fclose(puVar7)" identifier = (cast_expression "(undefined1 *)rpl_fclose(puVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "rpl_fclose(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))))) ;) (if_statement "if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" if (parenthesized_expression "((uVar9 & 0x20) == 0)" ( (binary_expression "(uVar9 & 0x20) == 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }" { (if_statement "if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" if (parenthesized_expression "(puVar2 != (undefined1 *)0x0)" ( (binary_expression "puVar2 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" { (if_statement "if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }" { (expression_statement "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))()" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x16ee8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" * (cast_expression "(code **)(pcVar11 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16ee8)" ( (binary_expression "pcVar11 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);" (assignment_expression "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9)" identifier = (cast_expression "(undefined1 *)-(uint)(*piVar4 != 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(uint)(*piVar4 != 9)" - (call_expression "(uint)(*piVar4 != 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar4 != 9)" ( (binary_expression "*piVar4 != 9" (pointer_expression "*piVar4" * identifier) != number_literal) )))))) ;) }) (else_clause "else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" else (compound_statement "{\n          puVar2 = (undefined1 *)0xffffffff;\n        }" { (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) }) (else_clause "else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" else (if_statement "if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" if (parenthesized_expression "(puVar2 == (undefined1 *)0x0)" ( (binary_expression "puVar2 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }" { (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" * (cast_expression "(code **)(pcVar11 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16ee8)" ( (binary_expression "pcVar11 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" else (compound_statement "{\n      puVar2 = (undefined1 *)0xffffffff;\n    }" { (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (return_statement "return puVar2;" return identifier ;) }))) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit "size_t rpl_mbrtowc(wchar_t *pwc,char *s,size_t n,mbstate_t *ps)\n\n{\n  undefined3 extraout_var;\n  _Bool _Var7;\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  size_t sVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar8;\n  FILE *fp;\n  byte *pbVar9;\n  uint uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_6c [32];\n  FILE *pFStack_4c;\n  byte *pbStack_48;\n  size_t sStack_44;\n  uint *puStack_40;\n  wchar_t wc;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (s == (char *)0x0) {\n    n = 1;\n    pbVar9 = PTR_LAB_00034108 + 0x1d00;\n    pwc = &wc;\nLAB_0001d1bc:\n    s = (char *)pbVar9;\n    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);\n    pbStack_48 = pbVar9;\n    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }\n  }\n  else {\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return sStack_44;\n  }\n  puVar2 = local_14;\n  puVar11 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c);\n  puStack_40 = (uint *)pwc;\n  if (*(char *)n == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }\nLAB_0001d350:\n  if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }\n  return (size_t)puVar2;\n}\n\n" (function_definition "size_t rpl_mbrtowc(wchar_t *pwc,char *s,size_t n,mbstate_t *ps)\n\n{\n  undefined3 extraout_var;\n  _Bool _Var7;\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  size_t sVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar8;\n  FILE *fp;\n  byte *pbVar9;\n  uint uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_6c [32];\n  FILE *pFStack_4c;\n  byte *pbStack_48;\n  size_t sStack_44;\n  uint *puStack_40;\n  wchar_t wc;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (s == (char *)0x0) {\n    n = 1;\n    pbVar9 = PTR_LAB_00034108 + 0x1d00;\n    pwc = &wc;\nLAB_0001d1bc:\n    s = (char *)pbVar9;\n    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);\n    pbStack_48 = pbVar9;\n    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }\n  }\n  else {\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return sStack_44;\n  }\n  puVar2 = local_14;\n  puVar11 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c);\n  puStack_40 = (uint *)pwc;\n  if (*(char *)n == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }\nLAB_0001d350:\n  if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }\n  return (size_t)puVar2;\n}" primitive_type (function_declarator "rpl_mbrtowc(wchar_t *pwc,char *s,size_t n,mbstate_t *ps)" identifier (parameter_list "(wchar_t *pwc,char *s,size_t n,mbstate_t *ps)" ( (parameter_declaration "wchar_t *pwc" type_identifier (pointer_declarator "*pwc" * identifier)) , (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "size_t n" primitive_type identifier) , (parameter_declaration "mbstate_t *ps" type_identifier (pointer_declarator "*ps" * identifier)) ))) (compound_statement "{\n  undefined3 extraout_var;\n  _Bool _Var7;\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  size_t sVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar8;\n  FILE *fp;\n  byte *pbVar9;\n  uint uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_6c [32];\n  FILE *pFStack_4c;\n  byte *pbStack_48;\n  size_t sStack_44;\n  uint *puStack_40;\n  wchar_t wc;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (s == (char *)0x0) {\n    n = 1;\n    pbVar9 = PTR_LAB_00034108 + 0x1d00;\n    pwc = &wc;\nLAB_0001d1bc:\n    s = (char *)pbVar9;\n    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);\n    pbStack_48 = pbVar9;\n    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }\n  }\n  else {\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return sStack_44;\n  }\n  puVar2 = local_14;\n  puVar11 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c);\n  puStack_40 = (uint *)pwc;\n  if (*(char *)n == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }\nLAB_0001d350:\n  if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }\n  return (size_t)puVar2;\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "_Bool _Var7;" type_identifier identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "FILE *fp;" type_identifier (pointer_declarator "*fp" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined1 auStack_6c [32];" type_identifier (array_declarator "auStack_6c [32]" identifier [ number_literal ]) ;) (declaration "FILE *pFStack_4c;" type_identifier (pointer_declarator "*pFStack_4c" * identifier) ;) (declaration "byte *pbStack_48;" type_identifier (pointer_declarator "*pbStack_48" * identifier) ;) (declaration "size_t sStack_44;" primitive_type identifier ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "wchar_t wc;" type_identifier identifier ;) (declaration "undefined1 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier = (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (s == (char *)0x0) {\n    n = 1;\n    pbVar9 = PTR_LAB_00034108 + 0x1d00;\n    pwc = &wc;\nLAB_0001d1bc:\n    s = (char *)pbVar9;\n    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);\n    pbStack_48 = pbVar9;\n    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }\n  }\n  else {\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }" if (parenthesized_expression "(s == (char *)0x0)" ( (binary_expression "s == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    n = 1;\n    pbVar9 = PTR_LAB_00034108 + 0x1d00;\n    pwc = &wc;\nLAB_0001d1bc:\n    s = (char *)pbVar9;\n    sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);\n    pbStack_48 = pbVar9;\n    if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }\n  }" { (expression_statement "n = 1;" (assignment_expression "n = 1" identifier = number_literal) ;) (expression_statement "pbVar9 = PTR_LAB_00034108 + 0x1d00;" (assignment_expression "pbVar9 = PTR_LAB_00034108 + 0x1d00" identifier = (binary_expression "PTR_LAB_00034108 + 0x1d00" identifier + number_literal)) ;) (expression_statement "pwc = &wc;" (assignment_expression "pwc = &wc" identifier = (pointer_expression "&wc" & identifier)) ;) (labeled_statement "LAB_0001d1bc:\n    s = (char *)pbVar9;" statement_identifier : (expression_statement "s = (char *)pbVar9;" (assignment_expression "s = (char *)pbVar9" identifier = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc);" (assignment_expression "sStack_44 = (*(code *)PTR_mbrtowc_00034388)(pwc)" identifier = (call_expression "(*(code *)PTR_mbrtowc_00034388)(pwc)" (parenthesized_expression "(*(code *)PTR_mbrtowc_00034388)" ( (pointer_expression "*(code *)PTR_mbrtowc_00034388" * (cast_expression "(code *)PTR_mbrtowc_00034388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pwc)" ( identifier )))) ;) (expression_statement "pbStack_48 = pbVar9;" (assignment_expression "pbStack_48 = pbVar9" identifier = identifier) ;) (if_statement "if ((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)) {\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }" if (parenthesized_expression "((0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0))" ( (binary_expression "(0xfffffffd < sStack_44) && (_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)" (parenthesized_expression "(0xfffffffd < sStack_44)" ( (binary_expression "0xfffffffd < sStack_44" number_literal < identifier) )) && (parenthesized_expression "(_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0)" ( (comma_expression "_Var7 = hard_locale(0), CONCAT31(extraout_var,_Var7) == 0" (assignment_expression "_Var7 = hard_locale(0)" identifier = (call_expression "hard_locale(0)" identifier (argument_list "(0)" ( number_literal )))) , (binary_expression "CONCAT31(extraout_var,_Var7) == 0" (call_expression "CONCAT31(extraout_var,_Var7)" identifier (argument_list "(extraout_var,_Var7)" ( identifier , identifier ))) == number_literal)) ))) )) (compound_statement "{\n      *pwc = (uint)*pbVar9;\n      sStack_44 = 1;\n    }" { (expression_statement "*pwc = (uint)*pbVar9;" (assignment_expression "*pwc = (uint)*pbVar9" (pointer_expression "*pwc" * identifier) = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "sStack_44 = 1;" (assignment_expression "sStack_44 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }" else (compound_statement "{\n    if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }\n    sStack_44 = 0xfffffffe;\n    pbStack_48 = (byte *)s;\n  }" { (if_statement "if (n != 0) {\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }" if (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar9 = (byte *)s;\n      if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }\n      goto LAB_0001d1bc;\n    }" { (expression_statement "pbVar9 = (byte *)s;" (assignment_expression "pbVar9 = (byte *)s" identifier = (cast_expression "(byte *)s" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pwc == (wchar_t *)0x0) {\n        pwc = &wc;\n      }" if (parenthesized_expression "(pwc == (wchar_t *)0x0)" ( (binary_expression "pwc == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pwc = &wc;\n      }" { (expression_statement "pwc = &wc;" (assignment_expression "pwc = &wc" identifier = (pointer_expression "&wc" & identifier)) ;) })) (goto_statement "goto LAB_0001d1bc;" goto statement_identifier ;) })) (expression_statement "sStack_44 = 0xfffffffe;" (assignment_expression "sStack_44 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "pbStack_48 = (byte *)s;" (assignment_expression "pbStack_48 = (byte *)s" identifier = (cast_expression "(byte *)s" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return sStack_44;\n  }" if (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc)" ( (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier == (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return sStack_44;\n  }" { (return_statement "return sStack_44;" return identifier ;) })) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000343b0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000343b0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000343b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000343b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000343b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000343b0" * (cast_expression "(code *)PTR___stack_chk_fail_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c);" (assignment_expression "pFStack_4c = (FILE *)**(undefined4 **)(puVar11 + 0x1715c)" identifier = (cast_expression "(FILE *)**(undefined4 **)(puVar11 + 0x1715c)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar11 + 0x1715c)" * (pointer_expression "*(undefined4 **)(puVar11 + 0x1715c)" * (cast_expression "(undefined4 **)(puVar11 + 0x1715c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x1715c)" ( (binary_expression "puVar11 + 0x1715c" identifier + number_literal) ))))))) ;) (expression_statement "puStack_40 = (uint *)pwc;" (assignment_expression "puStack_40 = (uint *)pwc" identifier = (cast_expression "(uint *)pwc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)n == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)n == '\0')" ( (binary_expression "*(char *)n == '\0'" (pointer_expression "*(char *)n" * (cast_expression "(char *)n" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *puVar2 = 0;\n  }" { (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }" else (compound_statement "{\n    if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }\n  }" { (if_statement "if (*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }" if (parenthesized_expression "(*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) == 0" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar11 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar11 + 0x16e88)" * (cast_expression "(int *)(puVar11 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e88)" ( (binary_expression "puVar11 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);\n      uVar8 = 1;\n      if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;\n      (**(code **)(puVar11 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }" { (expression_statement "iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880);" (assignment_expression "iVar1 = (**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880)" identifier = (call_expression "(**(code **)(puVar11 + 0x170dc))(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880)" (parenthesized_expression "(**(code **)(puVar11 + 0x170dc))" ( (pointer_expression "**(code **)(puVar11 + 0x170dc)" * (pointer_expression "*(code **)(puVar11 + 0x170dc)" * (cast_expression "(code **)(puVar11 + 0x170dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x170dc)" ( (binary_expression "puVar11 + 0x170dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar11 + 0x16e98) + 0x3534,0x10880)" ( (binary_expression "*(int *)(puVar11 + 0x16e98) + 0x3534" (pointer_expression "*(int *)(puVar11 + 0x16e98)" * (cast_expression "(int *)(puVar11 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e98)" ( (binary_expression "puVar11 + 0x16e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = 0xffffffff" (pointer_expression "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar11 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar11 + 0x16e88)" * (cast_expression "(int *)(puVar11 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e88)" ( (binary_expression "puVar11 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d350;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)\n      ;" (call_expression "(**(code **)(puVar11 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)" (parenthesized_expression "(**(code **)(puVar11 + 0x17038))" ( (pointer_expression "**(code **)(puVar11 + 0x17038)" * (pointer_expression "*(code **)(puVar11 + 0x17038)" * (cast_expression "(code **)(puVar11 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17038)" ( (binary_expression "puVar11 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,1,0x20,*(int *)(puVar11 + 0x16e98) + 0x3544,iVar1)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar11 + 0x16e98) + 0x3544" (pointer_expression "*(int *)(puVar11 + 0x16e98)" * (cast_expression "(int *)(puVar11 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e98)" ( (binary_expression "puVar11 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0);" (assignment_expression "iVar3 = (**(code **)(puVar11 + 0x170c0))(auStack_6c,0)" identifier = (call_expression "(**(code **)(puVar11 + 0x170c0))(auStack_6c,0)" (parenthesized_expression "(**(code **)(puVar11 + 0x170c0))" ( (pointer_expression "**(code **)(puVar11 + 0x170c0)" * (pointer_expression "*(code **)(puVar11 + 0x170c0)" * (cast_expression "(code **)(puVar11 + 0x170c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x170c0)" ( (binary_expression "puVar11 + 0x170c0" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\n        uVar8 = 0xffffffff;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar8 = 0xffffffff;\n      }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8;" (assignment_expression "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0) = uVar8" (pointer_expression "*(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar11 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar11 + 0x16e88)" * (cast_expression "(int *)(puVar11 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e88)" ( (binary_expression "puVar11 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(puVar11 + 0x17054))(iVar1);" (call_expression "(**(code **)(puVar11 + 0x17054))(iVar1)" (parenthesized_expression "(**(code **)(puVar11 + 0x17054))" ( (pointer_expression "**(code **)(puVar11 + 0x17054)" * (pointer_expression "*(code **)(puVar11 + 0x17054)" * (cast_expression "(code **)(puVar11 + 0x17054)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17054)" ( (binary_expression "puVar11 + 0x17054" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "iVar1 = *(int *)(puVar11 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar11 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar11 + 0x16e88)" * (cast_expression "(int *)(puVar11 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e88)" ( (binary_expression "puVar11 + 0x16e88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }" else (compound_statement "{\n      iVar1 = *(int *)(puVar11 + 0x16e88);\n    }" { (expression_statement "iVar1 = *(int *)(puVar11 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar11 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar11 + 0x16e88)" * (cast_expression "(int *)(puVar11 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e88)" ( (binary_expression "puVar11 + 0x16e88" identifier + number_literal) ))))) ;) }))) (if_statement "if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x45d0) < 0)" ( (binary_expression "*(int *)(iVar1 + 0x45d0) < 0" (pointer_expression "*(int *)(iVar1 + 0x45d0)" * (cast_expression "(int *)(iVar1 + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x45d0)" ( (binary_expression "iVar1 + 0x45d0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      puVar2 = (undefined1 *)0x0;\n    }" { (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }" else (compound_statement "{\n      iVar1 = (**(code **)(puVar11 + 0x170ec))(n);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }\n    }" { (expression_statement "iVar1 = (**(code **)(puVar11 + 0x170ec))(n);" (assignment_expression "iVar1 = (**(code **)(puVar11 + 0x170ec))(n)" identifier = (call_expression "(**(code **)(puVar11 + 0x170ec))(n)" (parenthesized_expression "(**(code **)(puVar11 + 0x170ec))" ( (pointer_expression "**(code **)(puVar11 + 0x170ec)" * (pointer_expression "*(code **)(puVar11 + 0x170ec)" * (cast_expression "(code **)(puVar11 + 0x170ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x170ec)" ( (binary_expression "puVar11 + 0x170ec" identifier + number_literal) ))))) )) (argument_list "(n)" ( identifier )))) ;) (if_statement "if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }" if (parenthesized_expression "((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0))" ( (binary_expression "(iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)" (parenthesized_expression "(iVar1 + 0x1bU < 0xfc1)" ( (binary_expression "iVar1 + 0x1bU < 0xfc1" (binary_expression "iVar1 + 0x1bU" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0)" ( (comma_expression "puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))(), puVar2 != (undefined1 *)0x0" (assignment_expression "puVar2 = (undefined1 *)(**(code **)(puVar11 + 0x17108))()" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar11 + 0x17108))()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar11 + 0x17108))()" (parenthesized_expression "(**(code **)(puVar11 + 0x17108))" ( (pointer_expression "**(code **)(puVar11 + 0x17108)" * (pointer_expression "*(code **)(puVar11 + 0x17108)" * (cast_expression "(code **)(puVar11 + 0x17108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17108)" ( (binary_expression "puVar11 + 0x17108" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "puVar2 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);\n        (**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);\n      }" { (expression_statement "iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s);" (assignment_expression "iVar1 = (**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s)" identifier = (call_expression "(**(code **)(puVar11 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s)" (parenthesized_expression "(**(code **)(puVar11 + 0x17038))" ( (pointer_expression "**(code **)(puVar11 + 0x17038)" * (pointer_expression "*(code **)(puVar11 + 0x17038)" * (cast_expression "(code **)(puVar11 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17038)" ( (binary_expression "puVar11 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(puVar2,1,0xffffffff,*(int *)(puVar11 + 0x16e98) + 0x355c,s)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar11 + 0x16e98) + 0x355c" (pointer_expression "*(int *)(puVar11 + 0x16e98)" * (cast_expression "(int *)(puVar11 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16e98)" ( (binary_expression "puVar11 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "(**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n);" (call_expression "(**(code **)(puVar11 + 0x17124))(puVar2 + iVar1,n)" (parenthesized_expression "(**(code **)(puVar11 + 0x17124))" ( (pointer_expression "**(code **)(puVar11 + 0x17124)" * (pointer_expression "*(code **)(puVar11 + 0x17124)" * (cast_expression "(code **)(puVar11 + 0x17124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17124)" ( (binary_expression "puVar11 + 0x17124" identifier + number_literal) ))))) )) (argument_list "(puVar2 + iVar1,n)" ( (binary_expression "puVar2 + iVar1" identifier + identifier) , identifier ))) ;) })) }))) }))) (labeled_statement "LAB_0001d350:\n  if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }" statement_identifier : (if_statement "if (pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)) {\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }" if (parenthesized_expression "(pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c))" ( (binary_expression "pFStack_4c != (FILE *)**(int **)(puVar11 + 0x1715c)" identifier != (cast_expression "(FILE *)**(int **)(puVar11 + 0x1715c)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar11 + 0x1715c)" * (pointer_expression "*(int **)(puVar11 + 0x1715c)" * (cast_expression "(int **)(puVar11 + 0x1715c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x1715c)" ( (binary_expression "puVar11 + 0x1715c" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x17140);\n    fp = pFStack_4c;\n    (*pcVar12)();\n    iVar1 = (**(code **)(pcVar12 + 0x16f40))();\n    uVar10 = fp->_flags;\n    sVar4 = rpl_fclose(fp);\n    if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }\n    return sVar4;\n  }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x17140);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x17140)" identifier = (pointer_expression "*(code **)(puVar11 + 0x17140)" * (cast_expression "(code **)(puVar11 + 0x17140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x17140)" ( (binary_expression "puVar11 + 0x17140" identifier + number_literal) ))))) ;) (expression_statement "fp = pFStack_4c;" (assignment_expression "fp = pFStack_4c" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar12 + 0x16f40))();" (assignment_expression "iVar1 = (**(code **)(pcVar12 + 0x16f40))()" identifier = (call_expression "(**(code **)(pcVar12 + 0x16f40))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x16f40))" ( (pointer_expression "**(code **)(pcVar12 + 0x16f40)" * (pointer_expression "*(code **)(pcVar12 + 0x16f40)" * (cast_expression "(code **)(pcVar12 + 0x16f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x16f40)" ( (binary_expression "pcVar12 + 0x16f40" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar10 = fp->_flags;" (assignment_expression "uVar10 = fp->_flags" identifier = (field_expression "fp->_flags" identifier -> field_identifier)) ;) (expression_statement "sVar4 = rpl_fclose(fp);" (assignment_expression "sVar4 = rpl_fclose(fp)" identifier = (call_expression "rpl_fclose(fp)" identifier (argument_list "(fp)" ( identifier )))) ;) (if_statement "if ((uVar10 & 0x20) == 0) {\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }\n    else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }" if (parenthesized_expression "((uVar10 & 0x20) == 0)" ( (binary_expression "(uVar10 & 0x20) == 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }\n    }" { (if_statement "if (sVar4 != 0) {\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }" if (parenthesized_expression "(sVar4 != 0)" ( (binary_expression "sVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }\n      }" { (if_statement "if (iVar1 == 0) {\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }\n        else {\n          sVar4 = 0xffffffff;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();\n          sVar4 = -(uint)(*piVar5 != 9);\n        }" { (expression_statement "piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))();" (assignment_expression "piVar5 = (int *)(**(code **)(pcVar12 + 0x16ee8))()" identifier = (cast_expression "(int *)(**(code **)(pcVar12 + 0x16ee8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar12 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar12 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar12 + 0x16ee8)" * (cast_expression "(code **)(pcVar12 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x16ee8)" ( (binary_expression "pcVar12 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "sVar4 = -(uint)(*piVar5 != 9);" (assignment_expression "sVar4 = -(uint)(*piVar5 != 9)" identifier = (unary_expression "-(uint)(*piVar5 != 9)" - (call_expression "(uint)(*piVar5 != 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar5 != 9)" ( (binary_expression "*piVar5 != 9" (pointer_expression "*piVar5" * identifier) != number_literal) ))))) ;) }) (else_clause "else {\n          sVar4 = 0xffffffff;\n        }" else (compound_statement "{\n          sVar4 = 0xffffffff;\n        }" { (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) }))) })) }) (else_clause "else if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }" else (if_statement "if (sVar4 == 0) {\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }\n    else {\n      sVar4 = 0xffffffff;\n    }" if (parenthesized_expression "(sVar4 == 0)" ( (binary_expression "sVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();\n      *puVar6 = 0;\n      sVar4 = 0xffffffff;\n    }" { (expression_statement "puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(pcVar12 + 0x16ee8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar12 + 0x16ee8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar12 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar12 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar12 + 0x16ee8)" * (cast_expression "(code **)(pcVar12 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x16ee8)" ( (binary_expression "pcVar12 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n      sVar4 = 0xffffffff;\n    }" else (compound_statement "{\n      sVar4 = 0xffffffff;\n    }" { (expression_statement "sVar4 = 0xffffffff;" (assignment_expression "sVar4 = 0xffffffff" identifier = number_literal) ;) }))))) (return_statement "return sVar4;" return identifier ;) }))) (return_statement "return (size_t)puVar2;" return (cast_expression "(size_t)puVar2" ( (type_descriptor "size_t" primitive_type) ) identifier) ;) })))
(translation_unit "undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}\n\n" (function_definition "undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" type_identifier (pointer_declarator "* rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" * (function_declarator "rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,char *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined1 auStack_6c [32];" type_identifier (array_declarator "auStack_6c [32]" identifier [ number_literal ]) ;) (declaration "uint *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "byte *pbStack_48;" type_identifier (pointer_declarator "*pbStack_48" * identifier) ;) (declaration "undefined1 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "uint uStack_18;" type_identifier identifier ;) (declaration "undefined1 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier = (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }" { (expression_statement "param_3 = (char *)0x1;" (assignment_expression "param_3 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar8 = PTR_LAB_00034108 + 0x1d00;" (assignment_expression "pbVar8 = PTR_LAB_00034108 + 0x1d00" identifier = (binary_expression "PTR_LAB_00034108 + 0x1d00" identifier + number_literal)) ;) (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" identifier = (pointer_expression "&uStack_18" & identifier)) ;) (labeled_statement "LAB_0001d1bc:\n    param_2 = pbVar8;" statement_identifier : (expression_statement "param_2 = pbVar8;" (assignment_expression "param_2 = pbVar8" identifier = identifier) ;)) (expression_statement "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);" (assignment_expression "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mbrtowc_00034388)(param_1)" (parenthesized_expression "(*(code *)PTR_mbrtowc_00034388)" ( (pointer_expression "*(code *)PTR_mbrtowc_00034388" * (cast_expression "(code *)PTR_mbrtowc_00034388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "pbStack_48 = pbVar8;" (assignment_expression "pbStack_48 = pbVar8" identifier = identifier) ;) (if_statement "if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" if (parenthesized_expression "((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0))" ( (binary_expression "(&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)" (parenthesized_expression "(&SUB_fffffffe <= puStack_44)" ( (binary_expression "&SUB_fffffffe <= puStack_44" (pointer_expression "&SUB_fffffffe" & identifier) <= identifier) )) && (parenthesized_expression "(iVar1 = hard_locale(0), iVar1 == 0)" ( (comma_expression "iVar1 = hard_locale(0), iVar1 == 0" (assignment_expression "iVar1 = hard_locale(0)" identifier = (call_expression "hard_locale(0)" identifier (argument_list "(0)" ( number_literal )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" { (expression_statement "*param_1 = (uint)*pbVar8;" (assignment_expression "*param_1 = (uint)*pbVar8" (pointer_expression "*param_1" * identifier) = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puStack_44 = (undefined1 *)0x1;" (assignment_expression "puStack_44 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" else (compound_statement "{\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" { (if_statement "if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" { (expression_statement "pbVar8 = param_2;" (assignment_expression "pbVar8 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1 = &uStack_18;\n      }" { (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" identifier = (pointer_expression "&uStack_18" & identifier)) ;) })) (goto_statement "goto LAB_0001d1bc;" goto statement_identifier ;) })) (expression_statement "puStack_44 = &SUB_fffffffe;" (assignment_expression "puStack_44 = &SUB_fffffffe" identifier = (pointer_expression "&SUB_fffffffe" & identifier)) ;) (expression_statement "pbStack_48 = param_2;" (assignment_expression "pbStack_48 = param_2" identifier = identifier) ;) }))) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }" if (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc)" ( (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc" identifier == (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return puStack_44;\n  }" { (return_statement "return puStack_44;" return identifier ;) })) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000343b0;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000343b0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000343b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000343b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000343b0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000343b0" * (cast_expression "(code *)PTR___stack_chk_fail_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);" (assignment_expression "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c)" identifier = (cast_expression "(uint *)**(undefined4 **)(puVar10 + 0x1715c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar10 + 0x1715c)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x1715c)" * (cast_expression "(undefined4 **)(puVar10 + 0x1715c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1715c)" ( (binary_expression "puVar10 + 0x1715c" identifier + number_literal) ))))))) ;) (expression_statement "puStack_40 = param_1;" (assignment_expression "puStack_40 = param_1" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *puVar2 = 0;\n  }" { (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" else (compound_statement "{\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" { (if_statement "if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" if (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" identifier = (call_expression "(**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" (parenthesized_expression "(**(code **)(puVar10 + 0x170dc))" ( (pointer_expression "**(code **)(puVar10 + 0x170dc)" * (pointer_expression "*(code **)(puVar10 + 0x170dc)" * (cast_expression "(code **)(puVar10 + 0x170dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170dc)" ( (binary_expression "puVar10 + 0x170dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" ( (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3534" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d350;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;" (call_expression "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" ( (pointer_expression "**(code **)(puVar10 + 0x17038)" * (pointer_expression "*(code **)(puVar10 + 0x17038)" * (cast_expression "(code **)(puVar10 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17038)" ( (binary_expression "puVar10 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3544" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" identifier = (call_expression "(**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" (parenthesized_expression "(**(code **)(puVar10 + 0x170c0))" ( (pointer_expression "**(code **)(puVar10 + 0x170c0)" * (pointer_expression "*(code **)(puVar10 + 0x170c0)" * (cast_expression "(code **)(puVar10 + 0x170c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170c0)" ( (binary_expression "puVar10 + 0x170c0" identifier + number_literal) ))))) )) (argument_list "(auStack_6c,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = 0xffffffff;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" * (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" ( (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(puVar10 + 0x17054))(iVar1);" (call_expression "(**(code **)(puVar10 + 0x17054))(iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17054))" ( (pointer_expression "**(code **)(puVar10 + 0x17054)" * (pointer_expression "*(code **)(puVar10 + 0x17054)" * (cast_expression "(code **)(puVar10 + 0x17054)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17054)" ( (binary_expression "puVar10 + 0x17054" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" else (compound_statement "{\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" { (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" identifier = (pointer_expression "*(int *)(puVar10 + 0x16e88)" * (cast_expression "(int *)(puVar10 + 0x16e88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e88)" ( (binary_expression "puVar10 + 0x16e88" identifier + number_literal) ))))) ;) }))) (if_statement "if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x45d0) < 0)" ( (binary_expression "*(int *)(iVar1 + 0x45d0) < 0" (pointer_expression "*(int *)(iVar1 + 0x45d0)" * (cast_expression "(int *)(iVar1 + 0x45d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x45d0)" ( (binary_expression "iVar1 + 0x45d0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      puVar2 = (undefined1 *)0x0;\n    }" { (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" else (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3)" identifier = (call_expression "(**(code **)(puVar10 + 0x170ec))(param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x170ec))" ( (pointer_expression "**(code **)(puVar10 + 0x170ec)" * (pointer_expression "*(code **)(puVar10 + 0x170ec)" * (cast_expression "(code **)(puVar10 + 0x170ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x170ec)" ( (binary_expression "puVar10 + 0x170ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" if (parenthesized_expression "((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0))" ( (binary_expression "(iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" (parenthesized_expression "(iVar1 + 0x1bU < 0xfc1)" ( (binary_expression "iVar1 + 0x1bU < 0xfc1" (binary_expression "iVar1 + 0x1bU" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" ( (comma_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0" (assignment_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))()" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar10 + 0x17108))()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar10 + 0x17108))()" (parenthesized_expression "(**(code **)(puVar10 + 0x17108))" ( (pointer_expression "**(code **)(puVar10 + 0x17108)" * (pointer_expression "*(code **)(puVar10 + 0x17108)" * (cast_expression "(code **)(puVar10 + 0x17108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17108)" ( (binary_expression "puVar10 + 0x17108" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "puVar2 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" { (expression_statement "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" identifier = (call_expression "(**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" ( (pointer_expression "**(code **)(puVar10 + 0x17038)" * (pointer_expression "*(code **)(puVar10 + 0x17038)" * (cast_expression "(code **)(puVar10 + 0x17038)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17038)" ( (binary_expression "puVar10 + 0x17038" identifier + number_literal) ))))) )) (argument_list "(puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x355c" (pointer_expression "*(int *)(puVar10 + 0x16e98)" * (cast_expression "(int *)(puVar10 + 0x16e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16e98)" ( (binary_expression "puVar10 + 0x16e98" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);" (call_expression "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x17124))" ( (pointer_expression "**(code **)(puVar10 + 0x17124)" * (pointer_expression "*(code **)(puVar10 + 0x17124)" * (cast_expression "(code **)(puVar10 + 0x17124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17124)" ( (binary_expression "puVar10 + 0x17124" identifier + number_literal) ))))) )) (argument_list "(puVar2 + iVar1,param_3)" ( (binary_expression "puVar2 + iVar1" identifier + identifier) , identifier ))) ;) })) }))) }))) (labeled_statement "LAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" statement_identifier : (if_statement "if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" if (parenthesized_expression "(puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c))" ( (binary_expression "puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)" identifier != (cast_expression "(uint *)**(int **)(puVar10 + 0x1715c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar10 + 0x1715c)" * (pointer_expression "*(int **)(puVar10 + 0x1715c)" * (cast_expression "(int **)(puVar10 + 0x1715c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1715c)" ( (binary_expression "puVar10 + 0x1715c" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" { (expression_statement "pcVar11 = *(code **)(puVar10 + 0x17140);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x17140)" identifier = (pointer_expression "*(code **)(puVar10 + 0x17140)" * (cast_expression "(code **)(puVar10 + 0x17140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x17140)" ( (binary_expression "puVar10 + 0x17140" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = puStack_4c;" (assignment_expression "puVar7 = puStack_4c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x16f40))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x16f40))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x16f40))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16f40))" ( (pointer_expression "**(code **)(pcVar11 + 0x16f40)" * (pointer_expression "*(code **)(pcVar11 + 0x16f40)" * (cast_expression "(code **)(pcVar11 + 0x16f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16f40)" ( (binary_expression "pcVar11 + 0x16f40" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *puVar7;" (assignment_expression "uVar9 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar2 = (undefined1 *)rpl_fclose(puVar7);" (assignment_expression "puVar2 = (undefined1 *)rpl_fclose(puVar7)" identifier = (cast_expression "(undefined1 *)rpl_fclose(puVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "rpl_fclose(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))))) ;) (if_statement "if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" if (parenthesized_expression "((uVar9 & 0x20) == 0)" ( (binary_expression "(uVar9 & 0x20) == 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }" { (if_statement "if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" if (parenthesized_expression "(puVar2 != (undefined1 *)0x0)" ( (binary_expression "puVar2 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" { (if_statement "if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }" { (expression_statement "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))()" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x16ee8))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" * (cast_expression "(code **)(pcVar11 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16ee8)" ( (binary_expression "pcVar11 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);" (assignment_expression "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9)" identifier = (cast_expression "(undefined1 *)-(uint)(*piVar4 != 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(uint)(*piVar4 != 9)" - (call_expression "(uint)(*piVar4 != 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar4 != 9)" ( (binary_expression "*piVar4 != 9" (pointer_expression "*piVar4" * identifier) != number_literal) )))))) ;) }) (else_clause "else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" else (compound_statement "{\n          puVar2 = (undefined1 *)0xffffffff;\n        }" { (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) }) (else_clause "else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" else (if_statement "if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" if (parenthesized_expression "(puVar2 == (undefined1 *)0x0)" ( (binary_expression "puVar2 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }" { (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" ( (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" * (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" * (cast_expression "(code **)(pcVar11 + 0x16ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16ee8)" ( (binary_expression "pcVar11 + 0x16ee8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" else (compound_statement "{\n      puVar2 = (undefined1 *)0xffffffff;\n    }" { (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (return_statement "return puVar2;" return identifier ;) }))) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) || (parenthesized_expression ( (comma_expression (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 ( ))))) , (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 ( IDENT , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + IDENT) , IDENT ))) ;) })) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) != LIT) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined1 * rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" (type_identifier "undefined1") (pointer_declarator "* rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" (* "*") (function_declarator "rpl_mbrtowc(uint *param_1,byte *param_2,char *param_3)" (identifier "rpl_mbrtowc") (parameter_list "(uint *param_1,byte *param_2,char *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  byte *pbVar8;\n  uint uVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_6c [32];\n  uint *puStack_4c;\n  byte *pbStack_48;\n  undefined1 *puStack_44;\n  uint *puStack_40;\n  uint uStack_18;\n  undefined1 *local_14;\n  \n  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;\n  if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }\n  puVar2 = local_14;\n  puVar10 = PTR___stack_chk_fail_000343b0;\n  (*(code *)PTR___stack_chk_fail_000343b0)();\n  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);\n  puStack_40 = param_1;\n  if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }\nLAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }\n  return puVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined1 auStack_6c [32];" (type_identifier "undefined1") (array_declarator "auStack_6c [32]" (identifier "auStack_6c") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "uint *puStack_4c;" (type_identifier "uint") (pointer_declarator "*puStack_4c" (* "*") (identifier "puStack_4c")) (; ";")) (declaration "byte *pbStack_48;" (type_identifier "byte") (pointer_declarator "*pbStack_48" (* "*") (identifier "pbStack_48")) (; ";")) (declaration "undefined1 *puStack_44;" (type_identifier "undefined1") (pointer_declarator "*puStack_44" (* "*") (identifier "puStack_44")) (; ";")) (declaration "uint *puStack_40;" (type_identifier "uint") (pointer_declarator "*puStack_40" (* "*") (identifier "puStack_40")) (; ";")) (declaration "uint uStack_18;" (type_identifier "uint") (identifier "uStack_18") (; ";")) (declaration "undefined1 *local_14;" (type_identifier "undefined1") (pointer_declarator "*local_14" (* "*") (identifier "local_14")) (; ";")) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc" (identifier "local_14") (= "=") (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" (* "*") (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000343cc")))) (; ";")) (if_statement "if (param_2 == (byte *)0x0) {\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }\n  else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_3 = (char *)0x1;\n    pbVar8 = PTR_LAB_00034108 + 0x1d00;\n    param_1 = &uStack_18;\nLAB_0001d1bc:\n    param_2 = pbVar8;\n    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);\n    pbStack_48 = pbVar8;\n    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }\n  }" ({ "{") (expression_statement "param_3 = (char *)0x1;" (assignment_expression "param_3 = (char *)0x1" (identifier "param_3") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbVar8 = PTR_LAB_00034108 + 0x1d00;" (assignment_expression "pbVar8 = PTR_LAB_00034108 + 0x1d00" (identifier "pbVar8") (= "=") (binary_expression "PTR_LAB_00034108 + 0x1d00" (identifier "PTR_LAB_00034108") (+ "+") (number_literal "0x1d00"))) (; ";")) (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" (identifier "param_1") (= "=") (pointer_expression "&uStack_18" (& "&") (identifier "uStack_18"))) (; ";")) (labeled_statement "LAB_0001d1bc:\n    param_2 = pbVar8;" (statement_identifier "LAB_0001d1bc") (: ":") (expression_statement "param_2 = pbVar8;" (assignment_expression "param_2 = pbVar8" (identifier "param_2") (= "=") (identifier "pbVar8")) (; ";"))) (expression_statement "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);" (assignment_expression "puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" (identifier "puStack_44") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mbrtowc_00034388)(param_1)" (parenthesized_expression "(*(code *)PTR_mbrtowc_00034388)" (( "(") (pointer_expression "*(code *)PTR_mbrtowc_00034388" (* "*") (cast_expression "(code *)PTR_mbrtowc_00034388" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbrtowc_00034388"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "pbStack_48 = pbVar8;" (assignment_expression "pbStack_48 = pbVar8" (identifier "pbStack_48") (= "=") (identifier "pbVar8")) (; ";")) (if_statement "if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" (if "if") (parenthesized_expression "((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0))" (( "(") (binary_expression "(&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)" (parenthesized_expression "(&SUB_fffffffe <= puStack_44)" (( "(") (binary_expression "&SUB_fffffffe <= puStack_44" (pointer_expression "&SUB_fffffffe" (& "&") (identifier "SUB_fffffffe")) (<= "<=") (identifier "puStack_44")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = hard_locale(0), iVar1 == 0)" (( "(") (comma_expression "iVar1 = hard_locale(0), iVar1 == 0" (assignment_expression "iVar1 = hard_locale(0)" (identifier "iVar1") (= "=") (call_expression "hard_locale(0)" (identifier "hard_locale") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      *param_1 = (uint)*pbVar8;\n      puStack_44 = (undefined1 *)0x1;\n    }" ({ "{") (expression_statement "*param_1 = (uint)*pbVar8;" (assignment_expression "*param_1 = (uint)*pbVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar8"))) (; ";")) (expression_statement "puStack_44 = (undefined1 *)0x1;" (assignment_expression "puStack_44 = (undefined1 *)0x1" (identifier "puStack_44") (= "=") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" (else "else") (compound_statement "{\n    if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }\n    puStack_44 = &SUB_fffffffe;\n    pbStack_48 = param_2;\n  }" ({ "{") (if_statement "if (param_3 != (char *)0x0) {\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar8 = param_2;\n      if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }\n      goto LAB_0001d1bc;\n    }" ({ "{") (expression_statement "pbVar8 = param_2;" (assignment_expression "pbVar8 = param_2" (identifier "pbVar8") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1 == (uint *)0x0) {\n        param_1 = &uStack_18;\n      }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        param_1 = &uStack_18;\n      }" ({ "{") (expression_statement "param_1 = &uStack_18;" (assignment_expression "param_1 = &uStack_18" (identifier "param_1") (= "=") (pointer_expression "&uStack_18" (& "&") (identifier "uStack_18"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001d1bc;" (goto "goto") (statement_identifier "LAB_0001d1bc") (; ";")) (} "}"))) (expression_statement "puStack_44 = &SUB_fffffffe;" (assignment_expression "puStack_44 = &SUB_fffffffe" (identifier "puStack_44") (= "=") (pointer_expression "&SUB_fffffffe" (& "&") (identifier "SUB_fffffffe"))) (; ";")) (expression_statement "pbStack_48 = param_2;" (assignment_expression "pbStack_48 = param_2" (identifier "pbStack_48") (= "=") (identifier "param_2")) (; ";")) (} "}")))) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {\n    return puStack_44;\n  }" (if "if") (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc)" (( "(") (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc" (identifier "local_14") (== "==") (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_000343cc" (* "*") (cast_expression "(undefined1 **)PTR___stack_chk_guard_000343cc" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000343cc")))) () ")")) (compound_statement "{\n    return puStack_44;\n  }" ({ "{") (return_statement "return puStack_44;" (return "return") (identifier "puStack_44") (; ";")) (} "}"))) (expression_statement "puVar2 = local_14;" (assignment_expression "puVar2 = local_14" (identifier "puVar2") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar10 = PTR___stack_chk_fail_000343b0;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000343b0" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_fail_000343b0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000343b0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000343b0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000343b0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000343b0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000343b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000343b0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);" (assignment_expression "puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c)" (identifier "puStack_4c") (= "=") (cast_expression "(uint *)**(undefined4 **)(puVar10 + 0x1715c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar10 + 0x1715c)" (* "*") (pointer_expression "*(undefined4 **)(puVar10 + 0x1715c)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x1715c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x1715c)" (( "(") (binary_expression "puVar10 + 0x1715c" (identifier "puVar10") (+ "+") (number_literal "0x1715c")) () ")"))))))) (; ";")) (expression_statement "puStack_40 = param_1;" (assignment_expression "puStack_40 = param_1" (identifier "puStack_40") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (*param_3 == '\0') {\n    *puVar2 = 0;\n  }\n  else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*param_3 == '\0')" (( "(") (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *puVar2 = 0;\n  }" ({ "{") (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }\n  }" ({ "{") (if_statement "if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }\n    else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0" (pointer_expression "*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (* "*") (cast_expression "(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e88)" (( "(") (binary_expression "puVar10 + 0x16e88" (identifier "puVar10") (+ "+") (number_literal "0x16e88")) () ")")))) (+ "+") (number_literal "0x45d0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);\n      if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }\n      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;\n      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);\n      uVar6 = 1;\n      if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }\n      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;\n      (**(code **)(puVar10 + 0x17054))(iVar1);\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" ({ "{") (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" (parenthesized_expression "(**(code **)(puVar10 + 0x170dc))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x170dc)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x170dc)" (* "*") (cast_expression "(code **)(puVar10 + 0x170dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x170dc)" (( "(") (binary_expression "puVar10 + 0x170dc" (identifier "puVar10") (+ "+") (number_literal "0x170dc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880)" (( "(") (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3534" (pointer_expression "*(int *)(puVar10 + 0x16e98)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e98)" (( "(") (binary_expression "puVar10 + 0x16e98" (identifier "puVar10") (+ "+") (number_literal "0x16e98")) () ")")))) (+ "+") (number_literal "0x3534")) (, ",") (number_literal "0x10880") () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;\n        puVar2 = (undefined1 *)0x0;\n        goto LAB_0001d350;\n      }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e88)" (( "(") (binary_expression "puVar10 + 0x16e88" (identifier "puVar10") (+ "+") (number_literal "0x16e88")) () ")")))) (+ "+") (number_literal "0x45d0")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0001d350;" (goto "goto") (statement_identifier "LAB_0001d350") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)\n      ;" (call_expression "(**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x17038)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x17038)" (* "*") (cast_expression "(code **)(puVar10 + 0x17038)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17038)" (( "(") (binary_expression "puVar10 + 0x17038" (identifier "puVar10") (+ "+") (number_literal "0x17038")) () ")"))))) () ")")) (argument_list "(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)" (( "(") (identifier "auStack_6c") (, ",") (number_literal "1") (, ",") (number_literal "0x20") (, ",") (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x3544" (pointer_expression "*(int *)(puVar10 + 0x16e98)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e98)" (( "(") (binary_expression "puVar10 + 0x16e98" (identifier "puVar10") (+ "+") (number_literal "0x16e98")) () ")")))) (+ "+") (number_literal "0x3544")) (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar10 + 0x170c0))(auStack_6c,0)" (parenthesized_expression "(**(code **)(puVar10 + 0x170c0))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x170c0)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x170c0)" (* "*") (cast_expression "(code **)(puVar10 + 0x170c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x170c0)" (( "(") (binary_expression "puVar10 + 0x170c0" (identifier "puVar10") (+ "+") (number_literal "0x170c0")) () ")"))))) () ")")) (argument_list "(auStack_6c,0)" (( "(") (identifier "auStack_6c") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar3 != 0) {\n        uVar6 = 0xffffffff;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = 0xffffffff;\n      }" ({ "{") (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x16e88) + 0x45d0)" (( "(") (binary_expression "*(int *)(puVar10 + 0x16e88) + 0x45d0" (pointer_expression "*(int *)(puVar10 + 0x16e88)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e88)" (( "(") (binary_expression "puVar10 + 0x16e88" (identifier "puVar10") (+ "+") (number_literal "0x16e88")) () ")")))) (+ "+") (number_literal "0x45d0")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(**(code **)(puVar10 + 0x17054))(iVar1);" (call_expression "(**(code **)(puVar10 + 0x17054))(iVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x17054))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x17054)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x17054)" (* "*") (cast_expression "(code **)(puVar10 + 0x17054)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17054)" (( "(") (binary_expression "puVar10 + 0x17054" (identifier "puVar10") (+ "+") (number_literal "0x17054")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar10 + 0x16e88)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e88)" (( "(") (binary_expression "puVar10 + 0x16e88" (identifier "puVar10") (+ "+") (number_literal "0x16e88")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" (else "else") (compound_statement "{\n      iVar1 = *(int *)(puVar10 + 0x16e88);\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(puVar10 + 0x16e88);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0x16e88)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar10 + 0x16e88)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e88)" (( "(") (binary_expression "puVar10 + 0x16e88" (identifier "puVar10") (+ "+") (number_literal "0x16e88")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar1 + 0x45d0) < 0) {\n      puVar2 = (undefined1 *)0x0;\n    }\n    else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x45d0) < 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x45d0) < 0" (pointer_expression "*(int *)(iVar1 + 0x45d0)" (* "*") (cast_expression "(int *)(iVar1 + 0x45d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x45d0)" (( "(") (binary_expression "iVar1 + 0x45d0" (identifier "iVar1") (+ "+") (number_literal "0x45d0")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      puVar2 = (undefined1 *)0x0;\n    }" ({ "{") (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" (else "else") (compound_statement "{\n      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);\n      if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }\n    }" ({ "{") (expression_statement "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar10 + 0x170ec))(param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x170ec))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x170ec)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x170ec)" (* "*") (cast_expression "(code **)(puVar10 + 0x170ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x170ec)" (( "(") (binary_expression "puVar10 + 0x170ec" (identifier "puVar10") (+ "+") (number_literal "0x170ec")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if ((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" (if "if") (parenthesized_expression "((iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0))" (( "(") (binary_expression "(iVar1 + 0x1bU < 0xfc1) ||\n         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" (parenthesized_expression "(iVar1 + 0x1bU < 0xfc1)" (( "(") (binary_expression "iVar1 + 0x1bU < 0xfc1" (binary_expression "iVar1 + 0x1bU" (identifier "iVar1") (+ "+") (number_literal "0x1bU")) (< "<") (number_literal "0xfc1")) () ")")) (|| "||") (parenthesized_expression "(puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)" (( "(") (comma_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0" (assignment_expression "puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))()" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar10 + 0x17108))()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar10 + 0x17108))()" (parenthesized_expression "(**(code **)(puVar10 + 0x17108))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x17108)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x17108)" (* "*") (cast_expression "(code **)(puVar10 + 0x17108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17108)" (( "(") (binary_expression "puVar10 + 0x17108" (identifier "puVar10") (+ "+") (number_literal "0x17108")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "puVar2 != (undefined1 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);\n        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);\n      }" ({ "{") (expression_statement "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);" (assignment_expression "iVar1 = (**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar10 + 0x17038))\n                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" (parenthesized_expression "(**(code **)(puVar10 + 0x17038))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x17038)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x17038)" (* "*") (cast_expression "(code **)(puVar10 + 0x17038)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17038)" (( "(") (binary_expression "puVar10 + 0x17038" (identifier "puVar10") (+ "+") (number_literal "0x17038")) () ")"))))) () ")")) (argument_list "(puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2)" (( "(") (identifier "puVar2") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "*(int *)(puVar10 + 0x16e98) + 0x355c" (pointer_expression "*(int *)(puVar10 + 0x16e98)" (* "*") (cast_expression "(int *)(puVar10 + 0x16e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16e98)" (( "(") (binary_expression "puVar10 + 0x16e98" (identifier "puVar10") (+ "+") (number_literal "0x16e98")) () ")")))) (+ "+") (number_literal "0x355c")) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);" (call_expression "(**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3)" (parenthesized_expression "(**(code **)(puVar10 + 0x17124))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x17124)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x17124)" (* "*") (cast_expression "(code **)(puVar10 + 0x17124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17124)" (( "(") (binary_expression "puVar10 + 0x17124" (identifier "puVar10") (+ "+") (number_literal "0x17124")) () ")"))))) () ")")) (argument_list "(puVar2 + iVar1,param_3)" (( "(") (binary_expression "puVar2 + iVar1" (identifier "puVar2") (+ "+") (identifier "iVar1")) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0001d350:\n  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" (statement_identifier "LAB_0001d350") (: ":") (if_statement "if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c))" (( "(") (binary_expression "puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)" (identifier "puStack_4c") (!= "!=") (cast_expression "(uint *)**(int **)(puVar10 + 0x1715c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(puVar10 + 0x1715c)" (* "*") (pointer_expression "*(int **)(puVar10 + 0x1715c)" (* "*") (cast_expression "(int **)(puVar10 + 0x1715c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x1715c)" (( "(") (binary_expression "puVar10 + 0x1715c" (identifier "puVar10") (+ "+") (number_literal "0x1715c")) () ")"))))))) () ")")) (compound_statement "{\n    pcVar11 = *(code **)(puVar10 + 0x17140);\n    puVar7 = puStack_4c;\n    (*pcVar11)();\n    iVar1 = (**(code **)(pcVar11 + 0x16f40))();\n    uVar9 = *puVar7;\n    puVar2 = (undefined1 *)rpl_fclose(puVar7);\n    if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    return puVar2;\n  }" ({ "{") (expression_statement "pcVar11 = *(code **)(puVar10 + 0x17140);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x17140)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(puVar10 + 0x17140)" (* "*") (cast_expression "(code **)(puVar10 + 0x17140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x17140)" (( "(") (binary_expression "puVar10 + 0x17140" (identifier "puVar10") (+ "+") (number_literal "0x17140")) () ")"))))) (; ";")) (expression_statement "puVar7 = puStack_4c;" (assignment_expression "puVar7 = puStack_4c" (identifier "puVar7") (= "=") (identifier "puStack_4c")) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x16f40))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x16f40))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar11 + 0x16f40))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16f40))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x16f40)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x16f40)" (* "*") (cast_expression "(code **)(pcVar11 + 0x16f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x16f40)" (( "(") (binary_expression "pcVar11 + 0x16f40" (identifier "pcVar11") (+ "+") (number_literal "0x16f40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = *puVar7;" (assignment_expression "uVar9 = *puVar7" (identifier "uVar9") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar2 = (undefined1 *)rpl_fclose(puVar7);" (assignment_expression "puVar2 = (undefined1 *)rpl_fclose(puVar7)" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)rpl_fclose(puVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "rpl_fclose(puVar7)" (identifier "rpl_fclose") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))))) (; ";")) (if_statement "if ((uVar9 & 0x20) == 0) {\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }\n    else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" (if "if") (parenthesized_expression "((uVar9 & 0x20) == 0)" (( "(") (binary_expression "(uVar9 & 0x20) == 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }\n    }" ({ "{") (if_statement "if (puVar2 != (undefined1 *)0x0) {\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" (if "if") (parenthesized_expression "(puVar2 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined1 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }\n      }" ({ "{") (if_statement "if (iVar1 == 0) {\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }\n        else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();\n          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);\n        }" ({ "{") (expression_statement "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcVar11 + 0x16ee8))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" (* "*") (cast_expression "(code **)(pcVar11 + 0x16ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x16ee8)" (( "(") (binary_expression "pcVar11 + 0x16ee8" (identifier "pcVar11") (+ "+") (number_literal "0x16ee8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);" (assignment_expression "puVar2 = (undefined1 *)-(uint)(*piVar4 != 9)" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)-(uint)(*piVar4 != 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(uint)(*piVar4 != 9)" (- "-") (call_expression "(uint)(*piVar4 != 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*piVar4 != 9)" (( "(") (binary_expression "*piVar4 != 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "9")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n          puVar2 = (undefined1 *)0xffffffff;\n        }" (else "else") (compound_statement "{\n          puVar2 = (undefined1 *)0xffffffff;\n        }" ({ "{") (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" (else "else") (if_statement "if (puVar2 == (undefined1 *)0x0) {\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }\n    else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" (if "if") (parenthesized_expression "(puVar2 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined1 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();\n      *puVar5 = 0;\n      puVar2 = (undefined1 *)0xffffffff;\n    }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar11 + 0x16ee8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar11 + 0x16ee8))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x16ee8))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x16ee8)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x16ee8)" (* "*") (cast_expression "(code **)(pcVar11 + 0x16ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x16ee8)" (( "(") (binary_expression "pcVar11 + 0x16ee8" (identifier "pcVar11") (+ "+") (number_literal "0x16ee8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n      puVar2 = (undefined1 *)0xffffffff;\n    }" (else "else") (compound_statement "{\n      puVar2 = (undefined1 *)0xffffffff;\n    }" ({ "{") (expression_statement "puVar2 = (undefined1 *)0xffffffff;" (assignment_expression "puVar2 = (undefined1 *)0xffffffff" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))))) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}")))) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) (expression_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))) right: (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 (identifier) (number_literal) (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)) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier)))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (return_statement (identifier))))) (return_statement (identifier)))))

undefined1 * MASKED(uint *param_1,byte *param_2,char *param_3)

{
  int iVar1;
  undefined1 *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  byte *pbVar8;
  uint uVar9;
  undefined *puVar10;
  code *pcVar11;
  undefined1 auStack_6c [32];
  uint *puStack_4c;
  byte *pbStack_48;
  undefined1 *puStack_44;
  uint *puStack_40;
  uint uStack_18;
  undefined1 *local_14;
  
  local_14 = *(undefined1 **)PTR___stack_chk_guard_000343cc;
  if (param_2 == (byte *)0x0) {
    param_3 = (char *)0x1;
    pbVar8 = PTR_LAB_00034108 + 0x1d00;
    param_1 = &uStack_18;
LAB_0001d1bc:
    param_2 = pbVar8;
    puStack_44 = (undefined1 *)(*(code *)PTR_mbrtowc_00034388)(param_1);
    pbStack_48 = pbVar8;
    if ((&SUB_fffffffe <= puStack_44) && (iVar1 = hard_locale(0), iVar1 == 0)) {
      *param_1 = (uint)*pbVar8;
      puStack_44 = (undefined1 *)0x1;
    }
  }
  else {
    if (param_3 != (char *)0x0) {
      pbVar8 = param_2;
      if (param_1 == (uint *)0x0) {
        param_1 = &uStack_18;
      }
      goto LAB_0001d1bc;
    }
    puStack_44 = &SUB_fffffffe;
    pbStack_48 = param_2;
  }
  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_000343cc) {
    return puStack_44;
  }
  puVar2 = local_14;
  puVar10 = PTR___stack_chk_fail_000343b0;
  (*(code *)PTR___stack_chk_fail_000343b0)();
  puStack_4c = (uint *)**(undefined4 **)(puVar10 + 0x1715c);
  puStack_40 = param_1;
  if (*param_3 == '\0') {
    *puVar2 = 0;
  }
  else {
    if (*(int *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) == 0) {
      iVar1 = (**(code **)(puVar10 + 0x170dc))(*(int *)(puVar10 + 0x16e98) + 0x3534,0x10880);
      if (iVar1 < 0) {
        *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = 0xffffffff;
        puVar2 = (undefined1 *)0x0;
        goto LAB_0001d350;
      }
      (**(code **)(puVar10 + 0x17038))(auStack_6c,1,0x20,*(int *)(puVar10 + 0x16e98) + 0x3544,iVar1)
      ;
      iVar3 = (**(code **)(puVar10 + 0x170c0))(auStack_6c,0);
      uVar6 = 1;
      if (iVar3 != 0) {
        uVar6 = 0xffffffff;
      }
      *(undefined4 *)(*(int *)(puVar10 + 0x16e88) + 0x45d0) = uVar6;
      (**(code **)(puVar10 + 0x17054))(iVar1);
      iVar1 = *(int *)(puVar10 + 0x16e88);
    }
    else {
      iVar1 = *(int *)(puVar10 + 0x16e88);
    }
    if (*(int *)(iVar1 + 0x45d0) < 0) {
      puVar2 = (undefined1 *)0x0;
    }
    else {
      iVar1 = (**(code **)(puVar10 + 0x170ec))(param_3);
      if ((iVar1 + 0x1bU < 0xfc1) ||
         (puVar2 = (undefined1 *)(**(code **)(puVar10 + 0x17108))(), puVar2 != (undefined1 *)0x0)) {
        iVar1 = (**(code **)(puVar10 + 0x17038))
                          (puVar2,1,0xffffffff,*(int *)(puVar10 + 0x16e98) + 0x355c,param_2);
        (**(code **)(puVar10 + 0x17124))(puVar2 + iVar1,param_3);
      }
    }
  }
LAB_0001d350:
  if (puStack_4c != (uint *)**(int **)(puVar10 + 0x1715c)) {
    pcVar11 = *(code **)(puVar10 + 0x17140);
    puVar7 = puStack_4c;
    (*pcVar11)();
    iVar1 = (**(code **)(pcVar11 + 0x16f40))();
    uVar9 = *puVar7;
    puVar2 = (undefined1 *)rpl_fclose(puVar7);
    if ((uVar9 & 0x20) == 0) {
      if (puVar2 != (undefined1 *)0x0) {
        if (iVar1 == 0) {
          piVar4 = (int *)(**(code **)(pcVar11 + 0x16ee8))();
          puVar2 = (undefined1 *)-(uint)(*piVar4 != 9);
        }
        else {
          puVar2 = (undefined1 *)0xffffffff;
        }
      }
    }
    else if (puVar2 == (undefined1 *)0x0) {
      puVar5 = (undefined4 *)(**(code **)(pcVar11 + 0x16ee8))();
      *puVar5 = 0;
      puVar2 = (undefined1 *)0xffffffff;
    }
    else {
      puVar2 = (undefined1 *)0xffffffff;
    }
    return puVar2;
  }
  return puVar2;
}

