
int next(priv_dumper_t *dumper)

{
  off_t oVar1;
  undefined *puVar2;
  int iVar3;
  char **ppcVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint in_a2;
  undefined *puVar10;
  char *pcVar11;
  char *pcVar12;
  char *pcVar13;
  stat sbuf;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  pcVar11 = PTR_UINT_0012a18c + 0x1a14;
  puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0;
  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;
LAB_000e8024:
  ppcVar4 = dumper->argv;
LAB_000e8028:
  pcVar12 = *ppcVar4;
  pcVar13 = pcVar12;
  if (pcVar12 == (char *)0x0) {
    iVar5 = 0;
    if (dumper->next__done == '\0') {
      iVar5 = *(int *)&(dumper->pub).dump_skip;
      oVar1 = (dumper->pub).dump_skip;
      dumper->next__done = '\x01';
      pcVar13 = pcVar11;
      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;
      goto LAB_000e80a8;
    }
  }
  else {
    dumper->argv = ppcVar4 + 1;
    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {
      in_a2 = *(uint *)PTR_stdin_0012aee0;
      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);
      if (iVar5 == 0) goto code_r0x000e8064;
    }
    iVar5 = *(int *)&(dumper->pub).dump_skip;
    oVar1 = (dumper->pub).dump_skip;
    dumper->next__done = '\x01';
    if (iVar5 != 0 || (int)oVar1 != 0) {
LAB_000e80a8:
      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);
      in_a2 = *(uint *)&(dumper->pub).dump_skip;
      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;
      goto LAB_000e80d8;
    }
    iVar5 = 1;
  }
  do {
    if (iVar3 == *(int *)puVar2) {
      return iVar5;
    }
    (*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_000e8180:
    uVar6 = (uint)(dumper->pub).dump_skip;
    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {
LAB_000e80d8:
      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);
      if (iVar5 != 0) {
        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);
      }
      uVar6 = (uint)dumper->address;
      in_a2 = 0;
      iVar5 = *(int *)&dumper->address;
      iVar9 = *(int *)&(dumper->pub).dump_skip;
      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;
      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;
      *(undefined4 *)&(dumper->pub).dump_skip = 0;
      *(uint *)((int)&dumper->address + 4) = uVar7;
      *(uint *)((int)&dumper->savaddress + 4) = uVar7;
      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;
      *(int *)&dumper->address = iVar5;
      *(int *)&dumper->savaddress = iVar5;
      pcVar12 = pcVar13;
    }
    else {
      if (sbuf.st_size._0_4_ == in_a2) {
        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;
        uVar7 = (uint)dumper->address;
      }
      else {
        uVar7 = (uint)dumper->address;
      }
      uVar8 = uVar6 - sbuf.st_size._4_4_;
      iVar5 = *(int *)&dumper->address;
      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;
      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);
      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;
      *(uint *)&(dumper->pub).dump_skip = in_a2;
      in_a2 = in_a2 | uVar8;
      *(uint *)&dumper->address =
           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;
      pcVar12 = pcVar13;
      if (in_a2 != 0) goto code_r0x000e81dc;
    }
LAB_000e8140:
    iVar5 = 1;
    pcVar13 = pcVar12;
  } while( true );
code_r0x000e8064:
  (*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);
  dumper->exitval = '\x01';
  goto LAB_000e8024;
code_r0x000e81dc:
  ppcVar4 = dumper->argv;
  goto LAB_000e8028;
}



undefined4 FUN_000e7fd0(int *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined *puVar8;
  char *pcVar9;
  char *pcVar10;
  undefined1 auStack_c8 [24];
  uint local_b0;
  int local_90;
  uint local_8c;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  pcVar9 = PTR_UINT_0012a18c + 0x1a14;
  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
LAB_000e8024:
  puVar2 = (undefined4 *)param_1[6];
  do {
    pcVar10 = (char *)*puVar2;
    if (pcVar10 == (char *)0x0) {
      uVar4 = 0;
      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;
      *(undefined1 *)((int)param_1 + 0x3d) = 1;
      pcVar10 = pcVar9;
      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;
LAB_000e8140:
      uVar4 = 1;
LAB_000e8144:
      if (local_24 != *(int *)puVar1) {
        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
        return uVar4;
      }
      return uVar4;
    }
    param_1[6] = (int)(puVar2 + 1);
    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&
       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),
       iVar3 == 0)) break;
    *(undefined1 *)((int)param_1 + 0x3d) = 1;
    if (*param_1 == 0 && param_1[1] == 0) {
      uVar4 = 1;
      goto LAB_000e8144;
    }
LAB_000e80a8:
    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);
    iVar3 = *param_1;
    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {
LAB_000e80d8:
      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);
      if (iVar3 != 0) {
        (*(code *)PTR_FUN_0012a294)(pcVar10);
      }
      uVar5 = param_1[0xd];
      iVar3 = *param_1;
      uVar6 = uVar5 + param_1[1];
      param_1[1] = 0;
      *param_1 = 0;
      param_1[0xd] = uVar6;
      param_1[9] = uVar6;
      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;
      param_1[0xc] = iVar3;
      param_1[8] = iVar3;
      goto LAB_000e8140;
    }
    if (local_90 == iVar3) {
      if (uVar5 < local_8c) goto LAB_000e80d8;
      uVar6 = param_1[0xd];
    }
    else {
      uVar6 = param_1[0xd];
    }
    uVar7 = uVar5 - local_8c;
    param_1[1] = uVar7;
    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);
    param_1[0xd] = uVar6 + local_8c;
    *param_1 = iVar3;
    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;
    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;
    puVar2 = (undefined4 *)param_1[6];
  } while( true );
  (*(code *)PTR_FUN_0012a218)(pcVar10);
  *(undefined1 *)(param_1 + 0xf) = 1;
  goto LAB_000e8024;
}


lui gp,0x5
addiu gp,gp,-0x5e80
addu gp,gp,t9
addiu sp,sp,-0xe8
sw s3,0xd8(sp)
sw s2,0xd4(sp)
sw s1,0xd0(sp)
lw s3,-0x7004(gp)
lw s2,-0x7fc4(gp)
lw s1,-0x7fa8(gp)
sw s5,0xe0(sp)
addiu s5,sp,0x20
sw s0,0xcc(sp)
addiu s2,s2,0x1a14
sw gp,0x18(sp)
addiu s1,s1,-0x54c0
sw ra,0xe4(sp)
or s0,a0,zero
sw s4,0xdc(sp)
lw v0,0x0(s3)
sw v0,0xc4(sp)
lw v0,0x18(s0)
lw s4,0x0(v0)
beq s4,zero,0x000e8080
_addiu v0,v0,0x4
li v1,0x2d
sw v0,0x18(s0)
lbu v0,0x0(s4)
beq v0,v1,0x000e81f4
_lw v0,-0x7270(gp)
or a1,s1,zero
lw t9,-0x71f0(gp)
or a0,s4,zero
jalr t9
_lw a2,0x0(v0)
bne v0,zero,0x000e8200
_lw gp,0x18(sp)
lw t9,-0x7f38(gp)
jalr t9
_or a0,s4,zero
li v0,0x1
lw gp,0x18(sp)
b 0x000e8024
_sb v0,0x3c(s0)
lb v0,0x3d(s0)
bne v0,zero,0x000e8144
_or v0,zero,zero
lw v0,0x0(s0)
li a0,0x1
lw v1,0x4(s0)
or v0,v0,v1
beq v0,zero,0x000e8140
_sb a0,0x3d(s0)
or s4,s2,zero
lw t9,-0x77fc(gp)
or a0,zero,zero
or a2,s4,zero
jalr t9
_or a1,s5,zero
ori v1,zero,0x8000
lw v0,0x38(sp)
lw gp,0x18(sp)
andi v0,v0,0xf000
beq v0,v1,0x000e8180
_lw a2,0x0(s0)
lw a3,0x4(s0)
lw v0,-0x7270(gp)
lw t9,-0x7328(gp)
sw zero,0x10(sp)
jalr t9
_lw a0,0x0(v0)
beq v0,zero,0x000e8100
_lw gp,0x18(sp)
lw t9,-0x7ebc(gp)
jalr t9
_or a0,s4,zero
lw v1,0x34(s0)
or a3,zero,zero
lw a0,0x4(s0)
or a2,zero,zero
lw v0,0x30(s0)
lw a1,0x0(s0)
addu a0,v1,a0
sw a3,0x4(s0)
sw a2,0x0(s0)
addu a1,v0,a1
sw a0,0x34(s0)
sltu v0,a0,v1
sw a0,0x24(s0)
addu v0,v0,a1
sw v0,0x30(s0)
sw v0,0x20(s0)
li v0,0x1
lw a0,0xc4(sp)
lw v1,0x0(s3)
bne a0,v1,0x000e8174
_lw ra,0xe4(sp)
lw s5,0xe0(sp)
lw s4,0xdc(sp)
lw s3,0xd8(sp)
lw s2,0xd4(sp)
lw s1,0xd0(sp)
lw s0,0xcc(sp)
jr ra
_addiu sp,sp,0xe8
lw t9,-0x7088(gp)
jalr t9
_nop
lw v1,0x58(sp)
lw a3,0x4(s0)
slt a0,a2,v1
bne a0,zero,0x000e80d8
_lw v0,0x5c(sp)
beq v1,a2,0x000e81e4
_sltu a0,a3,v0
lw t0,0x34(s0)
subu a0,a3,v0
lw a1,0x30(s0)
subu a2,a2,v1
sltu a3,a3,a0
sw a0,0x4(s0)
addu v0,t0,v0
addu v1,a1,v1
subu a2,a2,a3
sw v0,0x34(s0)
sltu v0,v0,t0
addu v0,v0,v1
sw a2,0x0(s0)
or a2,a2,a0
beq a2,zero,0x000e8140
_sw v0,0x30(s0)
b 0x000e8028
_lw v0,0x18(s0)
bne a0,zero,0x000e80d8
_nop
b 0x000e81a0
_lw t0,0x34(s0)
lbu v0,0x1(s4)
bne v0,zero,0x000e8048
_lw v0,-0x7270(gp)
lw v0,0x0(s0)
li a0,0x1
lw v1,0x4(s0)
or v0,v0,v1
bne v0,zero,0x000e80a8
_sb a0,0x3d(s0)
b 0x000e8144
_li v0,0x1
(translation_unit "undefined4 FUN_000e7fd0(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}\n\n" (function_definition "undefined4 FUN_000e7fd0(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" type_identifier (function_declarator "FUN_000e7fd0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined1 auStack_c8 [24];" type_identifier (array_declarator "auStack_c8 [24]" identifier [ number_literal ]) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar9 = PTR_UINT_0012a18c + 0x1a14;" (assignment_expression "pcVar9 = PTR_UINT_0012a18c + 0x1a14" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1a14" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_FUN_0012a1a8 + -0x54c0;" (assignment_expression "puVar8 = PTR_FUN_0012a1a8 + -0x54c0" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0x54c0" identifier + number_literal)) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];" statement_identifier : (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;)) (do_statement "do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );" do (compound_statement "{\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  }" { (expression_statement "pcVar10 = (char *)*puVar2;" (assignment_expression "pcVar10 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;" if (parenthesized_expression "(*(char *)((int)param_1 + 0x3d) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x3d) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x3d)" * (cast_expression "(char *)((int)param_1 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e8144;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (if_statement "if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;" if (parenthesized_expression "(*param_1 != 0 || param_1[1] != 0)" ( (binary_expression "*param_1 != 0 || param_1[1] != 0" (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) || (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal)) )) (goto_statement "goto LAB_000e80a8;" goto statement_identifier ;)) (labeled_statement "LAB_000e8140:\n      uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" statement_identifier : (if_statement "if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" { (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "param_1[6] = (int)(puVar2 + 1);" (assignment_expression "param_1[6] = (int)(puVar2 + 1)" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)(puVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) ;) (if_statement "if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;" if (parenthesized_expression "(((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0))" ( (binary_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" (parenthesized_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0'))" ( (binary_expression "(*pcVar10 != '-') || (pcVar10[1] != '\0')" (parenthesized_expression "(*pcVar10 != '-')" ( (binary_expression "*pcVar10 != '-'" (pointer_expression "*pcVar10" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar10[1] != '\0')" ( (binary_expression "pcVar10[1] != '\0'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" identifier = (call_expression "(*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_freopen64_0012af60)" ( (pointer_expression "*(code *)PTR_freopen64_0012af60" * (cast_expression "(code *)PTR_freopen64_0012af60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" ( identifier , identifier , (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" * (cast_expression "(undefined4 *)PTR_stdin_0012aee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" if (parenthesized_expression "(*param_1 == 0 && param_1[1] == 0)" ( (binary_expression "*param_1 == 0 && param_1[1] == 0" (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) && (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000e8144;" goto statement_identifier ;) })) (labeled_statement "LAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a954)" ( (pointer_expression "*(code *)PTR_FUN_0012a954" * (cast_expression "(code *)PTR_FUN_0012a954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,auStack_c8,pcVar10)" ( number_literal , identifier , identifier ))) ;)) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" if (parenthesized_expression "(((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90))" ( (binary_expression "((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)" (parenthesized_expression "((local_b0 & 0xf000) != 0x8000)" ( (binary_expression "(local_b0 & 0xf000) != 0x8000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(uVar5 = param_1[1], iVar3 < local_90)" ( (comma_expression "uVar5 = param_1[1], iVar3 < local_90" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "iVar3 < local_90" identifier < identifier)) ))) )) (compound_statement "{\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" { (labeled_statement "LAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" (assignment_expression "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" identifier = (call_expression "(*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_fseeko64_0012ae28)" ( (pointer_expression "*(code *)PTR_fseeko64_0012ae28" * (cast_expression "(code *)PTR_fseeko64_0012ae28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdin_0012aee0)" ( (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" * (cast_expression "(undefined4 *)PTR_stdin_0012aee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;)) (if_statement "if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" { (expression_statement "(*(code *)PTR_FUN_0012a294)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a294)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a294)" ( (pointer_expression "*(code *)PTR_FUN_0012a294" * (cast_expression "(code *)PTR_FUN_0012a294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10)" ( identifier ))) ;) })) (expression_statement "uVar5 = param_1[0xd];" (assignment_expression "uVar5 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = uVar5 + param_1[1];" (assignment_expression "uVar6 = uVar5 + param_1[1]" identifier = (binary_expression "uVar5 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[0xd] = uVar6;" (assignment_expression "param_1[0xd] = uVar6" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = uVar6;" (assignment_expression "param_1[9] = uVar6" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;" (assignment_expression "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" identifier = (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc]" (call_expression "(uint)(uVar6 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) ))) + (subscript_expression "param_1[0xc]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "param_1[0xc] = iVar3;" (assignment_expression "param_1[0xc] = iVar3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = iVar3;" (assignment_expression "param_1[8] = iVar3" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_000e8140;" goto statement_identifier ;) })) (if_statement "if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }" if (parenthesized_expression "(local_90 == iVar3)" ( (binary_expression "local_90 == iVar3" identifier == identifier) )) (compound_statement "{\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }" { (if_statement "if (uVar5 < local_8c) goto LAB_000e80d8;" if (parenthesized_expression "(uVar5 < local_8c)" ( (binary_expression "uVar5 < local_8c" identifier < identifier) )) (goto_statement "goto LAB_000e80d8;" goto statement_identifier ;)) (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      uVar6 = param_1[0xd];\n    }" else (compound_statement "{\n      uVar6 = param_1[0xd];\n    }" { (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar7 = uVar5 - local_8c;" (assignment_expression "uVar7 = uVar5 - local_8c" identifier = (binary_expression "uVar5 - local_8c" identifier - identifier)) ;) (expression_statement "param_1[1] = uVar7;" (assignment_expression "param_1[1] = uVar7" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);" (assignment_expression "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7)" identifier = (binary_expression "(iVar3 - local_90) - (uint)(uVar5 < uVar7)" (parenthesized_expression "(iVar3 - local_90)" ( (binary_expression "iVar3 - local_90" identifier - identifier) )) - (call_expression "(uint)(uVar5 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar7)" ( (binary_expression "uVar5 < uVar7" identifier < identifier) ))))) ;) (expression_statement "param_1[0xd] = uVar6 + local_8c;" (assignment_expression "param_1[0xd] = uVar6 + local_8c" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "uVar6 + local_8c" identifier + identifier)) ;) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;" (assignment_expression "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc]" (call_expression "(uint)(uVar6 + local_8c < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 + local_8c < uVar6)" ( (binary_expression "uVar6 + local_8c < uVar6" (binary_expression "uVar6 + local_8c" identifier + identifier) < identifier) ))) + (subscript_expression "param_1[0xc]" identifier [ number_literal ])) + identifier)) ;) (if_statement "if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;" if (parenthesized_expression "(iVar3 == 0 && uVar7 == 0)" ( (binary_expression "iVar3 == 0 && uVar7 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_000e8140;" goto statement_identifier ;)) (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "(*(code *)PTR_FUN_0012a218)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a218)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a218)" ( (pointer_expression "*(code *)PTR_FUN_0012a218" * (cast_expression "(code *)PTR_FUN_0012a218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" * (cast_expression "(undefined1 *)(param_1 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000e8024;" goto statement_identifier ;) })))
(translation_unit "int next(priv_dumper_t *dumper)\n\n{\n  off_t oVar1;\n  undefined *puVar2;\n  int iVar3;\n  char **ppcVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint in_a2;\n  undefined *puVar10;\n  char *pcVar11;\n  char *pcVar12;\n  char *pcVar13;\n  stat sbuf;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar11 = PTR_UINT_0012a18c + 0x1a14;\n  puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  ppcVar4 = dumper->argv;\nLAB_000e8028:\n  pcVar12 = *ppcVar4;\n  pcVar13 = pcVar12;\n  if (pcVar12 == (char *)0x0) {\n    iVar5 = 0;\n    if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }\n  }\n  else {\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }\n  do {\n    if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;\n    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }\nLAB_000e8140:\n    iVar5 = 1;\n    pcVar13 = pcVar12;\n  } while( true );\ncode_r0x000e8064:\n  (*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);\n  dumper->exitval = '\x01';\n  goto LAB_000e8024;\ncode_r0x000e81dc:\n  ppcVar4 = dumper->argv;\n  goto LAB_000e8028;\n}\n\n" (function_definition "int next(priv_dumper_t *dumper)\n\n{\n  off_t oVar1;\n  undefined *puVar2;\n  int iVar3;\n  char **ppcVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint in_a2;\n  undefined *puVar10;\n  char *pcVar11;\n  char *pcVar12;\n  char *pcVar13;\n  stat sbuf;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar11 = PTR_UINT_0012a18c + 0x1a14;\n  puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  ppcVar4 = dumper->argv;\nLAB_000e8028:\n  pcVar12 = *ppcVar4;\n  pcVar13 = pcVar12;\n  if (pcVar12 == (char *)0x0) {\n    iVar5 = 0;\n    if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }\n  }\n  else {\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }\n  do {\n    if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;\n    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }\nLAB_000e8140:\n    iVar5 = 1;\n    pcVar13 = pcVar12;\n  } while( true );\ncode_r0x000e8064:\n  (*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);\n  dumper->exitval = '\x01';\n  goto LAB_000e8024;\ncode_r0x000e81dc:\n  ppcVar4 = dumper->argv;\n  goto LAB_000e8028;\n}" primitive_type (function_declarator "next(priv_dumper_t *dumper)" identifier (parameter_list "(priv_dumper_t *dumper)" ( (parameter_declaration "priv_dumper_t *dumper" type_identifier (pointer_declarator "*dumper" * identifier)) ))) (compound_statement "{\n  off_t oVar1;\n  undefined *puVar2;\n  int iVar3;\n  char **ppcVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint in_a2;\n  undefined *puVar10;\n  char *pcVar11;\n  char *pcVar12;\n  char *pcVar13;\n  stat sbuf;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar11 = PTR_UINT_0012a18c + 0x1a14;\n  puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0;\n  iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  ppcVar4 = dumper->argv;\nLAB_000e8028:\n  pcVar12 = *ppcVar4;\n  pcVar13 = pcVar12;\n  if (pcVar12 == (char *)0x0) {\n    iVar5 = 0;\n    if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }\n  }\n  else {\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }\n  do {\n    if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;\n    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }\nLAB_000e8140:\n    iVar5 = 1;\n    pcVar13 = pcVar12;\n  } while( true );\ncode_r0x000e8064:\n  (*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);\n  dumper->exitval = '\x01';\n  goto LAB_000e8024;\ncode_r0x000e81dc:\n  ppcVar4 = dumper->argv;\n  goto LAB_000e8028;\n}" { (declaration "off_t oVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char **ppcVar4;" primitive_type (pointer_declarator "**ppcVar4" * (pointer_declarator "*ppcVar4" * identifier)) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint in_a2;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "stat sbuf;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar11 = PTR_UINT_0012a18c + 0x1a14;" (assignment_expression "pcVar11 = PTR_UINT_0012a18c + 0x1a14" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1a14" identifier + number_literal)) ;) (expression_statement "puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0;" (binary_expression "puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x54c0" (assignment_expression "puVar10 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" identifier = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_000e8024:\n  ppcVar4 = dumper->argv;" statement_identifier : (expression_statement "ppcVar4 = dumper->argv;" (assignment_expression "ppcVar4 = dumper->argv" identifier = (field_expression "dumper->argv" identifier -> field_identifier)) ;)) (labeled_statement "LAB_000e8028:\n  pcVar12 = *ppcVar4;" statement_identifier : (expression_statement "pcVar12 = *ppcVar4;" (assignment_expression "pcVar12 = *ppcVar4" identifier = (pointer_expression "*ppcVar4" * identifier)) ;)) (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n    iVar5 = 0;\n    if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }\n  }\n  else {\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = 0;\n    if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (dumper->next__done == '\0') {\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }" if (parenthesized_expression "(dumper->next__done == '\0')" ( (binary_expression "dumper->next__done == '\0'" (field_expression "dumper->next__done" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar5 = *(int *)&(dumper->pub).dump_skip;\n      oVar1 = (dumper->pub).dump_skip;\n      dumper->next__done = '\x01';\n      pcVar13 = pcVar11;\n      if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;\n      goto LAB_000e80a8;\n    }" { (expression_statement "iVar5 = *(int *)&(dumper->pub).dump_skip;" (assignment_expression "iVar5 = *(int *)&(dumper->pub).dump_skip" identifier = (pointer_expression "*(int *)&(dumper->pub).dump_skip" * (cast_expression "(int *)&(dumper->pub).dump_skip" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "oVar1 = (dumper->pub).dump_skip;" (assignment_expression "oVar1 = (dumper->pub).dump_skip" identifier = (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dumper->next__done = '\x01';" (assignment_expression "dumper->next__done = '\x01'" (field_expression "dumper->next__done" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pcVar13 = pcVar11;" (assignment_expression "pcVar13 = pcVar11" identifier = identifier) ;) (if_statement "if (iVar5 == 0 && (int)oVar1 == 0) goto LAB_000e8140;" if (parenthesized_expression "(iVar5 == 0 && (int)oVar1 == 0)" ( (binary_expression "iVar5 == 0 && (int)oVar1 == 0" (binary_expression "iVar5 == 0" identifier == number_literal) && (binary_expression "(int)oVar1 == 0" (cast_expression "(int)oVar1" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal)) )) (goto_statement "goto LAB_000e8140;" goto statement_identifier ;)) (goto_statement "goto LAB_000e80a8;" goto statement_identifier ;) })) }) (else_clause "else {\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }" else (compound_statement "{\n    dumper->argv = ppcVar4 + 1;\n    if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }\n    iVar5 = *(int *)&(dumper->pub).dump_skip;\n    oVar1 = (dumper->pub).dump_skip;\n    dumper->next__done = '\x01';\n    if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }\n    iVar5 = 1;\n  }" { (expression_statement "dumper->argv = ppcVar4 + 1;" (assignment_expression "dumper->argv = ppcVar4 + 1" (field_expression "dumper->argv" identifier -> field_identifier) = (binary_expression "ppcVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((*pcVar12 != '-') || (pcVar12[1] != '\0')) {\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }" if (parenthesized_expression "((*pcVar12 != '-') || (pcVar12[1] != '\0'))" ( (binary_expression "(*pcVar12 != '-') || (pcVar12[1] != '\0')" (parenthesized_expression "(*pcVar12 != '-')" ( (binary_expression "*pcVar12 != '-'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar12[1] != '\0')" ( (binary_expression "pcVar12[1] != '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      in_a2 = *(uint *)PTR_stdin_0012aee0;\n      iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);\n      if (iVar5 == 0) goto code_r0x000e8064;\n    }" { (expression_statement "in_a2 = *(uint *)PTR_stdin_0012aee0;" (assignment_expression "in_a2 = *(uint *)PTR_stdin_0012aee0" identifier = (pointer_expression "*(uint *)PTR_stdin_0012aee0" * (cast_expression "(uint *)PTR_stdin_0012aee0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10);" (assignment_expression "iVar5 = (*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10)" identifier = (call_expression "(*(code *)PTR_freopen64_0012af60)(pcVar12,puVar10)" (parenthesized_expression "(*(code *)PTR_freopen64_0012af60)" ( (pointer_expression "*(code *)PTR_freopen64_0012af60" * (cast_expression "(code *)PTR_freopen64_0012af60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12,puVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) goto code_r0x000e8064;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000e8064;" goto statement_identifier ;)) })) (expression_statement "iVar5 = *(int *)&(dumper->pub).dump_skip;" (assignment_expression "iVar5 = *(int *)&(dumper->pub).dump_skip" identifier = (pointer_expression "*(int *)&(dumper->pub).dump_skip" * (cast_expression "(int *)&(dumper->pub).dump_skip" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "oVar1 = (dumper->pub).dump_skip;" (assignment_expression "oVar1 = (dumper->pub).dump_skip" identifier = (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dumper->next__done = '\x01';" (assignment_expression "dumper->next__done = '\x01'" (field_expression "dumper->next__done" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (iVar5 != 0 || (int)oVar1 != 0) {\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }" if (parenthesized_expression "(iVar5 != 0 || (int)oVar1 != 0)" ( (binary_expression "iVar5 != 0 || (int)oVar1 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "(int)oVar1 != 0" (cast_expression "(int)oVar1" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal)) )) (compound_statement "{\nLAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);\n      in_a2 = *(uint *)&(dumper->pub).dump_skip;\n      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;\n      goto LAB_000e80d8;\n    }" { (labeled_statement "LAB_000e80a8:\n      (*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);" statement_identifier : (expression_statement "(*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);" (call_expression "(*(code *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13)" (parenthesized_expression "(*(code *)PTR_xfstat_0012a954)" ( (pointer_expression "*(code *)PTR_xfstat_0012a954" * (cast_expression "(code *)PTR_xfstat_0012a954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&sbuf,pcVar13)" ( number_literal , (pointer_expression "&sbuf" & identifier) , identifier ))) ;)) (expression_statement "in_a2 = *(uint *)&(dumper->pub).dump_skip;" (assignment_expression "in_a2 = *(uint *)&(dumper->pub).dump_skip" identifier = (pointer_expression "*(uint *)&(dumper->pub).dump_skip" * (cast_expression "(uint *)&(dumper->pub).dump_skip" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;" if (parenthesized_expression "((sbuf.st_mode & 0xf000) == 0x8000)" ( (binary_expression "(sbuf.st_mode & 0xf000) == 0x8000" (parenthesized_expression "(sbuf.st_mode & 0xf000)" ( (binary_expression "sbuf.st_mode & 0xf000" (field_expression "sbuf.st_mode" identifier . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000e8180;" goto statement_identifier ;)) (goto_statement "goto LAB_000e80d8;" goto statement_identifier ;) })) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) }))) (do_statement "do {\n    if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;\n    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }\nLAB_000e8140:\n    iVar5 = 1;\n    pcVar13 = pcVar12;\n  } while( true );" do (compound_statement "{\n    if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }\n    (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;\n    if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }\nLAB_000e8140:\n    iVar5 = 1;\n    pcVar13 = pcVar12;\n  }" { (if_statement "if (iVar3 == *(int *)puVar2) {\n      return iVar5;\n    }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return iVar5;\n    }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000e8180:\n    uVar6 = (uint)(dumper->pub).dump_skip;" statement_identifier : (expression_statement "uVar6 = (uint)(dumper->pub).dump_skip;" (assignment_expression "uVar6 = (uint)(dumper->pub).dump_skip" identifier = (field_expression "(uint)(dumper->pub).dump_skip" (call_expression "(uint)(dumper->pub)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) ))) . field_identifier)) ;)) (if_statement "if ((int)in_a2 < (int)sbuf.st_size._0_4_) {\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }\n    else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }" if (parenthesized_expression "((int)in_a2 < (int)sbuf.st_size._0_4_)" ( (binary_expression "(int)in_a2 < (int)sbuf.st_size._0_4_" (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sbuf.st_size._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "sbuf.st_size._0_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier))) )) (compound_statement "{\nLAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }\n      uVar6 = (uint)dumper->address;\n      in_a2 = 0;\n      iVar5 = *(int *)&dumper->address;\n      iVar9 = *(int *)&(dumper->pub).dump_skip;\n      uVar7 = uVar6 + (int)(dumper->pub).dump_skip;\n      *(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;\n      *(undefined4 *)&(dumper->pub).dump_skip = 0;\n      *(uint *)((int)&dumper->address + 4) = uVar7;\n      *(uint *)((int)&dumper->savaddress + 4) = uVar7;\n      iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;\n      *(int *)&dumper->address = iVar5;\n      *(int *)&dumper->savaddress = iVar5;\n      pcVar12 = pcVar13;\n    }" { (labeled_statement "LAB_000e80d8:\n      iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" statement_identifier : (expression_statement "iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" (assignment_expression "iVar5 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" identifier = (call_expression "(*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_fseeko64_0012ae28)" ( (pointer_expression "*(code *)PTR_fseeko64_0012ae28" * (cast_expression "(code *)PTR_fseeko64_0012ae28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdin_0012aee0)" ( (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" * (cast_expression "(undefined4 *)PTR_stdin_0012aee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;)) (if_statement "if (iVar5 != 0) {\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);\n      }" { (expression_statement "(*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);" (call_expression "(*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13)" (parenthesized_expression "(*(code *)PTR_bb_simple_perror_msg_and_die_0012a294)" ( (pointer_expression "*(code *)PTR_bb_simple_perror_msg_and_die_0012a294" * (cast_expression "(code *)PTR_bb_simple_perror_msg_and_die_0012a294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) })) (expression_statement "uVar6 = (uint)dumper->address;" (assignment_expression "uVar6 = (uint)dumper->address" identifier = (cast_expression "(uint)dumper->address" ( (type_descriptor "uint" type_identifier) ) (field_expression "dumper->address" identifier -> field_identifier))) ;) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)&dumper->address;" (assignment_expression "iVar5 = *(int *)&dumper->address" identifier = (pointer_expression "*(int *)&dumper->address" * (cast_expression "(int *)&dumper->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier))))) ;) (expression_statement "iVar9 = *(int *)&(dumper->pub).dump_skip;" (assignment_expression "iVar9 = *(int *)&(dumper->pub).dump_skip" identifier = (pointer_expression "*(int *)&(dumper->pub).dump_skip" * (cast_expression "(int *)&(dumper->pub).dump_skip" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar7 = uVar6 + (int)(dumper->pub).dump_skip;" (assignment_expression "uVar7 = uVar6 + (int)(dumper->pub).dump_skip" identifier = (binary_expression "uVar6 + (int)(dumper->pub).dump_skip" identifier + (cast_expression "(int)(dumper->pub).dump_skip" ( (type_descriptor "int" primitive_type) ) (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(dumper->pub).dump_skip + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(dumper->pub).dump_skip + 4)" * (cast_expression "(undefined4 *)((int)&(dumper->pub).dump_skip + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(dumper->pub).dump_skip + 4)" ( (binary_expression "(int)&(dumper->pub).dump_skip + 4" (cast_expression "(int)&(dumper->pub).dump_skip" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(dumper->pub).dump_skip = 0;" (assignment_expression "*(undefined4 *)&(dumper->pub).dump_skip = 0" (pointer_expression "*(undefined4 *)&(dumper->pub).dump_skip" * (cast_expression "(undefined4 *)&(dumper->pub).dump_skip" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(uint *)((int)&dumper->address + 4) = uVar7;" (assignment_expression "*(uint *)((int)&dumper->address + 4) = uVar7" (pointer_expression "*(uint *)((int)&dumper->address + 4)" * (cast_expression "(uint *)((int)&dumper->address + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&dumper->address + 4)" ( (binary_expression "(int)&dumper->address + 4" (cast_expression "(int)&dumper->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)&dumper->savaddress + 4) = uVar7;" (assignment_expression "*(uint *)((int)&dumper->savaddress + 4) = uVar7" (pointer_expression "*(uint *)((int)&dumper->savaddress + 4)" * (cast_expression "(uint *)((int)&dumper->savaddress + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&dumper->savaddress + 4)" ( (binary_expression "(int)&dumper->savaddress + 4" (cast_expression "(int)&dumper->savaddress" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&dumper->savaddress" & (field_expression "dumper->savaddress" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9;" (assignment_expression "iVar5 = (uint)(uVar7 < uVar6) + iVar5 + iVar9" identifier = (binary_expression "(uint)(uVar7 < uVar6) + iVar5 + iVar9" (binary_expression "(uint)(uVar7 < uVar6) + iVar5" (call_expression "(uint)(uVar7 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "*(int *)&dumper->address = iVar5;" (assignment_expression "*(int *)&dumper->address = iVar5" (pointer_expression "*(int *)&dumper->address" * (cast_expression "(int *)&dumper->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)&dumper->savaddress = iVar5;" (assignment_expression "*(int *)&dumper->savaddress = iVar5" (pointer_expression "*(int *)&dumper->savaddress" * (cast_expression "(int *)&dumper->savaddress" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dumper->savaddress" & (field_expression "dumper->savaddress" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pcVar12 = pcVar13;" (assignment_expression "pcVar12 = pcVar13" identifier = identifier) ;) }) (else_clause "else {\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }" else (compound_statement "{\n      if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }\n      uVar8 = uVar6 - sbuf.st_size._4_4_;\n      iVar5 = *(int *)&dumper->address;\n      *(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;\n      in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);\n      *(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;\n      *(uint *)&(dumper->pub).dump_skip = in_a2;\n      in_a2 = in_a2 | uVar8;\n      *(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;\n      pcVar12 = pcVar13;\n      if (in_a2 != 0) goto code_r0x000e81dc;\n    }" { (if_statement "if (sbuf.st_size._0_4_ == in_a2) {\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }\n      else {\n        uVar7 = (uint)dumper->address;\n      }" if (parenthesized_expression "(sbuf.st_size._0_4_ == in_a2)" ( (binary_expression "sbuf.st_size._0_4_ == in_a2" (field_expression "sbuf.st_size._0_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n        if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;\n        uVar7 = (uint)dumper->address;\n      }" { (if_statement "if (uVar6 < sbuf.st_size._4_4_) goto LAB_000e80d8;" if (parenthesized_expression "(uVar6 < sbuf.st_size._4_4_)" ( (binary_expression "uVar6 < sbuf.st_size._4_4_" identifier < (field_expression "sbuf.st_size._4_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier)) )) (goto_statement "goto LAB_000e80d8;" goto statement_identifier ;)) (expression_statement "uVar7 = (uint)dumper->address;" (assignment_expression "uVar7 = (uint)dumper->address" identifier = (cast_expression "(uint)dumper->address" ( (type_descriptor "uint" type_identifier) ) (field_expression "dumper->address" identifier -> field_identifier))) ;) }) (else_clause "else {\n        uVar7 = (uint)dumper->address;\n      }" else (compound_statement "{\n        uVar7 = (uint)dumper->address;\n      }" { (expression_statement "uVar7 = (uint)dumper->address;" (assignment_expression "uVar7 = (uint)dumper->address" identifier = (cast_expression "(uint)dumper->address" ( (type_descriptor "uint" type_identifier) ) (field_expression "dumper->address" identifier -> field_identifier))) ;) }))) (expression_statement "uVar8 = uVar6 - sbuf.st_size._4_4_;" (assignment_expression "uVar8 = uVar6 - sbuf.st_size._4_4_" identifier = (binary_expression "uVar6 - sbuf.st_size._4_4_" identifier - (field_expression "sbuf.st_size._4_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier))) ;) (expression_statement "iVar5 = *(int *)&dumper->address;" (assignment_expression "iVar5 = *(int *)&dumper->address" identifier = (pointer_expression "*(int *)&dumper->address" * (cast_expression "(int *)&dumper->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier))))) ;) (expression_statement "*(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8;" (assignment_expression "*(uint *)((int)&(dumper->pub).dump_skip + 4) = uVar8" (pointer_expression "*(uint *)((int)&(dumper->pub).dump_skip + 4)" * (cast_expression "(uint *)((int)&(dumper->pub).dump_skip + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(dumper->pub).dump_skip + 4)" ( (binary_expression "(int)&(dumper->pub).dump_skip + 4" (cast_expression "(int)&(dumper->pub).dump_skip" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8);" (assignment_expression "in_a2 = (in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8)" identifier = (binary_expression "(in_a2 - sbuf.st_size._0_4_) - (uint)(uVar6 < uVar8)" (parenthesized_expression "(in_a2 - sbuf.st_size._0_4_)" ( (binary_expression "in_a2 - sbuf.st_size._0_4_" identifier - (field_expression "sbuf.st_size._0_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar6 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar8)" ( (binary_expression "uVar6 < uVar8" identifier < identifier) ))))) ;) (expression_statement "*(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_;" (assignment_expression "*(uint *)((int)&dumper->address + 4) = uVar7 + sbuf.st_size._4_4_" (pointer_expression "*(uint *)((int)&dumper->address + 4)" * (cast_expression "(uint *)((int)&dumper->address + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&dumper->address + 4)" ( (binary_expression "(int)&dumper->address + 4" (cast_expression "(int)&dumper->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "uVar7 + sbuf.st_size._4_4_" identifier + (field_expression "sbuf.st_size._4_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier))) ;) (expression_statement "*(uint *)&(dumper->pub).dump_skip = in_a2;" (assignment_expression "*(uint *)&(dumper->pub).dump_skip = in_a2" (pointer_expression "*(uint *)&(dumper->pub).dump_skip" * (cast_expression "(uint *)&(dumper->pub).dump_skip" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(dumper->pub).dump_skip" & (field_expression "(dumper->pub).dump_skip" (parenthesized_expression "(dumper->pub)" ( (field_expression "dumper->pub" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "in_a2 = in_a2 | uVar8;" (assignment_expression "in_a2 = in_a2 | uVar8" identifier = (binary_expression "in_a2 | uVar8" identifier | identifier)) ;) (expression_statement "*(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_;" (assignment_expression "*(uint *)&dumper->address =\n           (uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_" (pointer_expression "*(uint *)&dumper->address" * (cast_expression "(uint *)&dumper->address" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dumper->address" & (field_expression "dumper->address" identifier -> field_identifier)))) = (binary_expression "(uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5 + sbuf.st_size._0_4_" (binary_expression "(uint)(uVar7 + sbuf.st_size._4_4_ < uVar7) + iVar5" (call_expression "(uint)(uVar7 + sbuf.st_size._4_4_ < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 + sbuf.st_size._4_4_ < uVar7)" ( (binary_expression "uVar7 + sbuf.st_size._4_4_ < uVar7" (binary_expression "uVar7 + sbuf.st_size._4_4_" identifier + (field_expression "sbuf.st_size._4_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier)) < identifier) ))) + identifier) + (field_expression "sbuf.st_size._0_4_" (field_expression "sbuf.st_size" identifier . field_identifier) . field_identifier))) ;) (expression_statement "pcVar12 = pcVar13;" (assignment_expression "pcVar12 = pcVar13" identifier = identifier) ;) (if_statement "if (in_a2 != 0) goto code_r0x000e81dc;" if (parenthesized_expression "(in_a2 != 0)" ( (binary_expression "in_a2 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x000e81dc;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000e8140:\n    iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "code_r0x000e8064:\n  (*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);" statement_identifier : (expression_statement "(*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12);" (call_expression "(*(code *)PTR_bb_simple_perror_msg_0012a218)(pcVar12)" (parenthesized_expression "(*(code *)PTR_bb_simple_perror_msg_0012a218)" ( (pointer_expression "*(code *)PTR_bb_simple_perror_msg_0012a218" * (cast_expression "(code *)PTR_bb_simple_perror_msg_0012a218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12)" ( identifier ))) ;)) (expression_statement "dumper->exitval = '\x01';" (assignment_expression "dumper->exitval = '\x01'" (field_expression "dumper->exitval" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000e8024;" goto statement_identifier ;) (labeled_statement "code_r0x000e81dc:\n  ppcVar4 = dumper->argv;" statement_identifier : (expression_statement "ppcVar4 = dumper->argv;" (assignment_expression "ppcVar4 = dumper->argv" identifier = (field_expression "dumper->argv" identifier -> field_identifier)) ;)) (goto_statement "goto LAB_000e8028;" goto statement_identifier ;) })))
(translation_unit "undefined4 FUN_000e7fd0(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}\n\n" (function_definition "undefined4 FUN_000e7fd0(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" type_identifier (function_declarator "FUN_000e7fd0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined1 auStack_c8 [24];" type_identifier (array_declarator "auStack_c8 [24]" identifier [ number_literal ]) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar9 = PTR_UINT_0012a18c + 0x1a14;" (assignment_expression "pcVar9 = PTR_UINT_0012a18c + 0x1a14" identifier = (binary_expression "PTR_UINT_0012a18c + 0x1a14" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_FUN_0012a1a8 + -0x54c0;" (assignment_expression "puVar8 = PTR_FUN_0012a1a8 + -0x54c0" identifier = (binary_expression "PTR_FUN_0012a1a8 + -0x54c0" identifier + number_literal)) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];" statement_identifier : (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;)) (do_statement "do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );" do (compound_statement "{\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  }" { (expression_statement "pcVar10 = (char *)*puVar2;" (assignment_expression "pcVar10 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;" if (parenthesized_expression "(*(char *)((int)param_1 + 0x3d) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x3d) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x3d)" * (cast_expression "(char *)((int)param_1 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e8144;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (if_statement "if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;" if (parenthesized_expression "(*param_1 != 0 || param_1[1] != 0)" ( (binary_expression "*param_1 != 0 || param_1[1] != 0" (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) || (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal)) )) (goto_statement "goto LAB_000e80a8;" goto statement_identifier ;)) (labeled_statement "LAB_000e8140:\n      uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" statement_identifier : (if_statement "if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" if (parenthesized_expression "(local_24 != *(int *)puVar1)" ( (binary_expression "local_24 != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" { (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "param_1[6] = (int)(puVar2 + 1);" (assignment_expression "param_1[6] = (int)(puVar2 + 1)" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)(puVar2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) ;) (if_statement "if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;" if (parenthesized_expression "(((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0))" ( (binary_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" (parenthesized_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0'))" ( (binary_expression "(*pcVar10 != '-') || (pcVar10[1] != '\0')" (parenthesized_expression "(*pcVar10 != '-')" ( (binary_expression "*pcVar10 != '-'" (pointer_expression "*pcVar10" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar10[1] != '\0')" ( (binary_expression "pcVar10[1] != '\0'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" identifier = (call_expression "(*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_freopen64_0012af60)" ( (pointer_expression "*(code *)PTR_freopen64_0012af60" * (cast_expression "(code *)PTR_freopen64_0012af60" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" ( identifier , identifier , (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" * (cast_expression "(undefined4 *)PTR_stdin_0012aee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x3d)" ( (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" if (parenthesized_expression "(*param_1 == 0 && param_1[1] == 0)" ( (binary_expression "*param_1 == 0 && param_1[1] == 0" (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) && (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000e8144;" goto statement_identifier ;) })) (labeled_statement "LAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a954)" ( (pointer_expression "*(code *)PTR_FUN_0012a954" * (cast_expression "(code *)PTR_FUN_0012a954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,auStack_c8,pcVar10)" ( number_literal , identifier , identifier ))) ;)) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" if (parenthesized_expression "(((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90))" ( (binary_expression "((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)" (parenthesized_expression "((local_b0 & 0xf000) != 0x8000)" ( (binary_expression "(local_b0 & 0xf000) != 0x8000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(uVar5 = param_1[1], iVar3 < local_90)" ( (comma_expression "uVar5 = param_1[1], iVar3 < local_90" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "iVar3 < local_90" identifier < identifier)) ))) )) (compound_statement "{\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" { (labeled_statement "LAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" (assignment_expression "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" identifier = (call_expression "(*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_fseeko64_0012ae28)" ( (pointer_expression "*(code *)PTR_fseeko64_0012ae28" * (cast_expression "(code *)PTR_fseeko64_0012ae28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_stdin_0012aee0)" ( (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" * (cast_expression "(undefined4 *)PTR_stdin_0012aee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;)) (if_statement "if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" { (expression_statement "(*(code *)PTR_FUN_0012a294)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a294)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a294)" ( (pointer_expression "*(code *)PTR_FUN_0012a294" * (cast_expression "(code *)PTR_FUN_0012a294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10)" ( identifier ))) ;) })) (expression_statement "uVar5 = param_1[0xd];" (assignment_expression "uVar5 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = uVar5 + param_1[1];" (assignment_expression "uVar6 = uVar5 + param_1[1]" identifier = (binary_expression "uVar5 + param_1[1]" identifier + (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[0xd] = uVar6;" (assignment_expression "param_1[0xd] = uVar6" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = uVar6;" (assignment_expression "param_1[9] = uVar6" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;" (assignment_expression "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" identifier = (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc]" (call_expression "(uint)(uVar6 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) ))) + (subscript_expression "param_1[0xc]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "param_1[0xc] = iVar3;" (assignment_expression "param_1[0xc] = iVar3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = iVar3;" (assignment_expression "param_1[8] = iVar3" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_000e8140;" goto statement_identifier ;) })) (if_statement "if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }" if (parenthesized_expression "(local_90 == iVar3)" ( (binary_expression "local_90 == iVar3" identifier == identifier) )) (compound_statement "{\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }" { (if_statement "if (uVar5 < local_8c) goto LAB_000e80d8;" if (parenthesized_expression "(uVar5 < local_8c)" ( (binary_expression "uVar5 < local_8c" identifier < identifier) )) (goto_statement "goto LAB_000e80d8;" goto statement_identifier ;)) (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      uVar6 = param_1[0xd];\n    }" else (compound_statement "{\n      uVar6 = param_1[0xd];\n    }" { (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar7 = uVar5 - local_8c;" (assignment_expression "uVar7 = uVar5 - local_8c" identifier = (binary_expression "uVar5 - local_8c" identifier - identifier)) ;) (expression_statement "param_1[1] = uVar7;" (assignment_expression "param_1[1] = uVar7" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);" (assignment_expression "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7)" identifier = (binary_expression "(iVar3 - local_90) - (uint)(uVar5 < uVar7)" (parenthesized_expression "(iVar3 - local_90)" ( (binary_expression "iVar3 - local_90" identifier - identifier) )) - (call_expression "(uint)(uVar5 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar7)" ( (binary_expression "uVar5 < uVar7" identifier < identifier) ))))) ;) (expression_statement "param_1[0xd] = uVar6 + local_8c;" (assignment_expression "param_1[0xd] = uVar6 + local_8c" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "uVar6 + local_8c" identifier + identifier)) ;) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;" (assignment_expression "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc]" (call_expression "(uint)(uVar6 + local_8c < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 + local_8c < uVar6)" ( (binary_expression "uVar6 + local_8c < uVar6" (binary_expression "uVar6 + local_8c" identifier + identifier) < identifier) ))) + (subscript_expression "param_1[0xc]" identifier [ number_literal ])) + identifier)) ;) (if_statement "if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;" if (parenthesized_expression "(iVar3 == 0 && uVar7 == 0)" ( (binary_expression "iVar3 == 0 && uVar7 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_000e8140;" goto statement_identifier ;)) (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" identifier = (cast_expression "(undefined4 *)param_1[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "(*(code *)PTR_FUN_0012a218)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a218)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a218)" ( (pointer_expression "*(code *)PTR_FUN_0012a218" * (cast_expression "(code *)PTR_FUN_0012a218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" * (cast_expression "(undefined1 *)(param_1 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000e8024;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == LIT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))) + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 FUN_000e7fd0(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" (type_identifier "undefined4") (function_declarator "FUN_000e7fd0(int *param_1)" (identifier "FUN_000e7fd0") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_90;\n  uint local_8c;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  pcVar9 = PTR_UINT_0012a18c + 0x1a14;\n  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\nLAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];\n  do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );\n  (*(code *)PTR_FUN_0012a218)(pcVar10);\n  *(undefined1 *)(param_1 + 0xf) = 1;\n  goto LAB_000e8024;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined1 auStack_c8 [24];" (type_identifier "undefined1") (array_declarator "auStack_c8 [24]" (identifier "auStack_c8") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "pcVar9 = PTR_UINT_0012a18c + 0x1a14;" (assignment_expression "pcVar9 = PTR_UINT_0012a18c + 0x1a14" (identifier "pcVar9") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x1a14" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x1a14"))) (; ";")) (expression_statement "puVar8 = PTR_FUN_0012a1a8 + -0x54c0;" (assignment_expression "puVar8 = PTR_FUN_0012a1a8 + -0x54c0" (identifier "puVar8") (= "=") (binary_expression "PTR_FUN_0012a1a8 + -0x54c0" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0x54c0"))) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (labeled_statement "LAB_000e8024:\n  puVar2 = (undefined4 *)param_1[6];" (statement_identifier "LAB_000e8024") (: ":") (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (do_statement "do {\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  } while( true );" (do "do") (compound_statement "{\n    pcVar10 = (char *)*puVar2;\n    if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }\n    param_1[6] = (int)(puVar2 + 1);\n    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;\n    *(undefined1 *)((int)param_1 + 0x3d) = 1;\n    if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }\nLAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);\n    iVar3 = *param_1;\n    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }\n    if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }\n    uVar7 = uVar5 - local_8c;\n    param_1[1] = uVar7;\n    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);\n    param_1[0xd] = uVar6 + local_8c;\n    *param_1 = iVar3;\n    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;\n    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;\n    puVar2 = (undefined4 *)param_1[6];\n  }" ({ "{") (expression_statement "pcVar10 = (char *)*puVar2;" (assignment_expression "pcVar10 = (char *)*puVar2" (identifier "pcVar10") (= "=") (cast_expression "(char *)*puVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar4 = 0;\n      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;\n      *(undefined1 *)((int)param_1 + 0x3d) = 1;\n      pcVar10 = pcVar9;\n      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;\nLAB_000e8140:\n      uVar4 = 1;\nLAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x3d) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x3d) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x3d)" (* "*") (cast_expression "(char *)((int)param_1 + 0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x3d)" (( "(") (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e8144;" (goto "goto") (statement_identifier "LAB_000e8144") (; ";"))) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x3d)" (( "(") (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3d")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" (identifier "pcVar10") (= "=") (identifier "pcVar9")) (; ";")) (if_statement "if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;" (if "if") (parenthesized_expression "(*param_1 != 0 || param_1[1] != 0)" (( "(") (binary_expression "*param_1 != 0 || param_1[1] != 0" (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000e80a8;" (goto "goto") (statement_identifier "LAB_000e80a8") (; ";"))) (labeled_statement "LAB_000e8140:\n      uVar4 = 1;" (statement_identifier "LAB_000e8140") (: ":") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";"))) (labeled_statement "LAB_000e8144:\n      if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" (statement_identifier "LAB_000e8144") (: ":") (if_statement "if (local_24 != *(int *)puVar1) {\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(local_24 != *(int *)puVar1)" (( "(") (binary_expression "local_24 != *(int *)puVar1" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\n        return uVar4;\n      }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "param_1[6] = (int)(puVar2 + 1);" (assignment_expression "param_1[6] = (int)(puVar2 + 1)" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)(puVar2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar2 + 1)" (( "(") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)) break;" (if "if") (parenthesized_expression "(((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0))" (( "(") (binary_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&\n       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" (parenthesized_expression "((*pcVar10 != '-') || (pcVar10[1] != '\0'))" (( "(") (binary_expression "(*pcVar10 != '-') || (pcVar10[1] != '\0')" (parenthesized_expression "(*pcVar10 != '-')" (( "(") (binary_expression "*pcVar10 != '-'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar10[1] != '\0')" (( "(") (binary_expression "pcVar10[1] != '\0'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),\n       iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_freopen64_0012af60)" (( "(") (pointer_expression "*(code *)PTR_freopen64_0012af60" (* "*") (cast_expression "(code *)PTR_freopen64_0012af60" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_freopen64_0012af60"))) () ")")) (argument_list "(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0)" (( "(") (identifier "pcVar10") (, ",") (identifier "puVar8") (, ",") (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" (* "*") (cast_expression "(undefined4 *)PTR_stdin_0012aee0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdin_0012aee0"))) () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(undefined1 *)((int)param_1 + 0x3d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x3d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x3d)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x3d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x3d)" (( "(") (binary_expression "(int)param_1 + 0x3d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3d")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*param_1 == 0 && param_1[1] == 0) {\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" (if "if") (parenthesized_expression "(*param_1 == 0 && param_1[1] == 0)" (( "(") (binary_expression "*param_1 == 0 && param_1[1] == 0" (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "param_1[1] == 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      uVar4 = 1;\n      goto LAB_000e8144;\n    }" ({ "{") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000e8144;" (goto "goto") (statement_identifier "LAB_000e8144") (; ";")) (} "}"))) (labeled_statement "LAB_000e80a8:\n    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" (statement_identifier "LAB_000e80a8") (: ":") (expression_statement "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a954)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a954" (* "*") (cast_expression "(code *)PTR_FUN_0012a954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a954"))) () ")")) (argument_list "(0,auStack_c8,pcVar10)" (( "(") (number_literal "0") (, ",") (identifier "auStack_c8") (, ",") (identifier "pcVar10") () ")"))) (; ";"))) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" (if "if") (parenthesized_expression "(((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90))" (( "(") (binary_expression "((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)" (parenthesized_expression "((local_b0 & 0xf000) != 0x8000)" (( "(") (binary_expression "(local_b0 & 0xf000) != 0x8000" (parenthesized_expression "(local_b0 & 0xf000)" (( "(") (binary_expression "local_b0 & 0xf000" (identifier "local_b0") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x8000")) () ")")) (|| "||") (parenthesized_expression "(uVar5 = param_1[1], iVar3 < local_90)" (( "(") (comma_expression "uVar5 = param_1[1], iVar3 < local_90" (assignment_expression "uVar5 = param_1[1]" (identifier "uVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "iVar3 < local_90" (identifier "iVar3") (< "<") (identifier "local_90"))) () ")"))) () ")")) (compound_statement "{\nLAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);\n      if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }\n      uVar5 = param_1[0xd];\n      iVar3 = *param_1;\n      uVar6 = uVar5 + param_1[1];\n      param_1[1] = 0;\n      *param_1 = 0;\n      param_1[0xd] = uVar6;\n      param_1[9] = uVar6;\n      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;\n      param_1[0xc] = iVar3;\n      param_1[8] = iVar3;\n      goto LAB_000e8140;\n    }" ({ "{") (labeled_statement "LAB_000e80d8:\n      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" (statement_identifier "LAB_000e80d8") (: ":") (expression_statement "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);" (assignment_expression "iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0)" (parenthesized_expression "(*(code *)PTR_fseeko64_0012ae28)" (( "(") (pointer_expression "*(code *)PTR_fseeko64_0012ae28" (* "*") (cast_expression "(code *)PTR_fseeko64_0012ae28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fseeko64_0012ae28"))) () ")")) (argument_list "(*(undefined4 *)PTR_stdin_0012aee0)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdin_0012aee0" (* "*") (cast_expression "(undefined4 *)PTR_stdin_0012aee0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdin_0012aee0"))) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_FUN_0012a294)(pcVar10);\n      }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a294)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a294)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a294)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a294" (* "*") (cast_expression "(code *)PTR_FUN_0012a294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a294"))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = param_1[0xd];" (assignment_expression "uVar5 = param_1[0xd]" (identifier "uVar5") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = uVar5 + param_1[1];" (assignment_expression "uVar6 = uVar5 + param_1[1]" (identifier "uVar6") (= "=") (binary_expression "uVar5 + param_1[1]" (identifier "uVar5") (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xd] = uVar6;" (assignment_expression "param_1[0xd] = uVar6" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "param_1[9] = uVar6;" (assignment_expression "param_1[9] = uVar6" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;" (assignment_expression "iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" (identifier "iVar3") (= "=") (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc] + iVar3" (binary_expression "(uint)(uVar6 < uVar5) + param_1[0xc]" (call_expression "(uint)(uVar6 < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 < uVar5)" (( "(") (binary_expression "uVar6 < uVar5" (identifier "uVar6") (< "<") (identifier "uVar5")) () ")"))) (+ "+") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "param_1[0xc] = iVar3;" (assignment_expression "param_1[0xc] = iVar3" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_1[8] = iVar3;" (assignment_expression "param_1[8] = iVar3" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (goto_statement "goto LAB_000e8140;" (goto "goto") (statement_identifier "LAB_000e8140") (; ";")) (} "}"))) (if_statement "if (local_90 == iVar3) {\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }\n    else {\n      uVar6 = param_1[0xd];\n    }" (if "if") (parenthesized_expression "(local_90 == iVar3)" (( "(") (binary_expression "local_90 == iVar3" (identifier "local_90") (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n      if (uVar5 < local_8c) goto LAB_000e80d8;\n      uVar6 = param_1[0xd];\n    }" ({ "{") (if_statement "if (uVar5 < local_8c) goto LAB_000e80d8;" (if "if") (parenthesized_expression "(uVar5 < local_8c)" (( "(") (binary_expression "uVar5 < local_8c" (identifier "uVar5") (< "<") (identifier "local_8c")) () ")")) (goto_statement "goto LAB_000e80d8;" (goto "goto") (statement_identifier "LAB_000e80d8") (; ";"))) (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      uVar6 = param_1[0xd];\n    }" (else "else") (compound_statement "{\n      uVar6 = param_1[0xd];\n    }" ({ "{") (expression_statement "uVar6 = param_1[0xd];" (assignment_expression "uVar6 = param_1[0xd]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar7 = uVar5 - local_8c;" (assignment_expression "uVar7 = uVar5 - local_8c" (identifier "uVar7") (= "=") (binary_expression "uVar5 - local_8c" (identifier "uVar5") (- "-") (identifier "local_8c"))) (; ";")) (expression_statement "param_1[1] = uVar7;" (assignment_expression "param_1[1] = uVar7" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);" (assignment_expression "iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7)" (identifier "iVar3") (= "=") (binary_expression "(iVar3 - local_90) - (uint)(uVar5 < uVar7)" (parenthesized_expression "(iVar3 - local_90)" (( "(") (binary_expression "iVar3 - local_90" (identifier "iVar3") (- "-") (identifier "local_90")) () ")")) (- "-") (call_expression "(uint)(uVar5 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 < uVar7)" (( "(") (binary_expression "uVar5 < uVar7" (identifier "uVar5") (< "<") (identifier "uVar7")) () ")"))))) (; ";")) (expression_statement "param_1[0xd] = uVar6 + local_8c;" (assignment_expression "param_1[0xd] = uVar6 + local_8c" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "uVar6 + local_8c" (identifier "uVar6") (+ "+") (identifier "local_8c"))) (; ";")) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;" (assignment_expression "param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90" (binary_expression "(uint)(uVar6 + local_8c < uVar6) + param_1[0xc]" (call_expression "(uint)(uVar6 + local_8c < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 + local_8c < uVar6)" (( "(") (binary_expression "uVar6 + local_8c < uVar6" (binary_expression "uVar6 + local_8c" (identifier "uVar6") (+ "+") (identifier "local_8c")) (< "<") (identifier "uVar6")) () ")"))) (+ "+") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (+ "+") (identifier "local_90"))) (; ";")) (if_statement "if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;" (if "if") (parenthesized_expression "(iVar3 == 0 && uVar7 == 0)" (( "(") (binary_expression "iVar3 == 0 && uVar7 == 0" (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000e8140;" (goto "goto") (statement_identifier "LAB_000e8140") (; ";"))) (expression_statement "puVar2 = (undefined4 *)param_1[6];" (assignment_expression "puVar2 = (undefined4 *)param_1[6]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)param_1[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "(*(code *)PTR_FUN_0012a218)(pcVar10);" (call_expression "(*(code *)PTR_FUN_0012a218)(pcVar10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a218)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a218" (* "*") (cast_expression "(code *)PTR_FUN_0012a218" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a218"))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf)" (( "(") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000e8024;" (goto "goto") (statement_identifier "LAB_000e8024") (; ";")) (} "}")))

int function_1(type_1 *dumper)

{
  type_2 oVar1;
  type_3 *puVar2;
  int var_8;
  char **var_7;
  int var_6;
  type_4 var_9;
  type_4 var_10;
  type_4 var_13;
  int var_11;
  type_4 var_12;
  type_3 *puVar10;
  char *pcVar11;
  char *var_5;
  char *pcVar13;
  type_5 sbuf;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  pcVar11 = var_1 + 0x1a14;
  puVar10 = var_2<var_3&var_4)9__f_l_0012a1a8 + -0x54c0;
  var_8 = *(int *)PTR___stack_chk_guard_0012b14c;
LAB_000e8024:
  var_7 = dumper->argv;
LAB_000e8028:
  var_5 = *var_7;
  pcVar13 = var_5;
  if (var_5 == (char *)0x0) {
    var_6 = 0;
    if (dumper->next__done == '\0') {
      var_6 = *(int *)&(dumper->pub).dump_skip;
      oVar1 = (dumper->pub).dump_skip;
      dumper->next__done = '\x01';
      pcVar13 = pcVar11;
      if (var_6 == 0 && (int)oVar1 == 0) goto LAB_000e8140;
      goto LAB_000e80a8;
    }
  }
  else {
    dumper->argv = var_7 + 1;
    if ((*var_5 != '-') || (var_5[1] != '\0')) {
      var_12 = *(type_4 *)PTR_stdin_0012aee0;
      var_6 = (*(type_6 *)PTR_freopen64_0012af60)(var_5,puVar10);
      if (var_6 == 0) goto code_r0x000e8064;
    }
    var_6 = *(int *)&(dumper->pub).dump_skip;
    oVar1 = (dumper->pub).dump_skip;
    dumper->next__done = '\x01';
    if (var_6 != 0 || (int)oVar1 != 0) {
LAB_000e80a8:
      (*(type_6 *)PTR_xfstat_0012a954)(0,&sbuf,pcVar13);
      var_12 = *(type_4 *)&(dumper->pub).dump_skip;
      if ((sbuf.st_mode & 0xf000) == 0x8000) goto LAB_000e8180;
      goto LAB_000e80d8;
    }
    var_6 = 1;
  }
  do {
    if (var_8 == *(int *)puVar2) {
      return var_6;
    }
    (*(type_6 *)PTR___stack_chk_fail_0012b0c8)();
LAB_000e8180:
    var_9 = (type_4)(dumper->pub).dump_skip;
    if ((int)var_12 < (int)sbuf.st_size._0_4_) {
LAB_000e80d8:
      var_6 = (*(type_6 *)PTR_fseeko64_0012ae28)(*(type_7 *)PTR_stdin_0012aee0);
      if (var_6 != 0) {
        (*(type_6 *)PTR_bb_simple_perror_msg_and_die_0012a294)(pcVar13);
      }
      var_9 = (type_4)dumper->address;
      var_12 = 0;
      var_6 = *(int *)&dumper->address;
      var_11 = *(int *)&(dumper->pub).dump_skip;
      var_10 = var_9 + (int)(dumper->pub).dump_skip;
      *(type_7 *)((int)&(dumper->pub).dump_skip + 4) = 0;
      *(type_7 *)&(dumper->pub).dump_skip = 0;
      *(type_4 *)((int)&dumper->address + 4) = var_10;
      *(type_4 *)((int)&dumper->savaddress + 4) = var_10;
      var_6 = (type_4)(var_10 < var_9) + var_6 + var_11;
      *(int *)&dumper->address = var_6;
      *(int *)&dumper->savaddress = var_6;
      var_5 = pcVar13;
    }
    else {
      if (sbuf.st_size._0_4_ == var_12) {
        if (var_9 < sbuf.st_size._4_4_) goto LAB_000e80d8;
        var_10 = (type_4)dumper->address;
      }
      else {
        var_10 = (type_4)dumper->address;
      }
      var_13 = var_9 - sbuf.st_size._4_4_;
      var_6 = *(int *)&dumper->address;
      *(type_4 *)((int)&(dumper->pub).dump_skip + 4) = var_13;
      var_12 = (var_12 - sbuf.st_size._0_4_) - (type_4)(var_9 < var_13);
      *(type_4 *)((int)&dumper->address + 4) = var_10 + sbuf.st_size._4_4_;
      *(type_4 *)&(dumper->pub).dump_skip = var_12;
      var_12 = var_12 | var_13;
      *(type_4 *)&dumper->address =
           (type_4)(var_10 + sbuf.st_size._4_4_ < var_10) + var_6 + sbuf.st_size._0_4_;
      var_5 = pcVar13;
      if (var_12 != 0) goto code_r0x000e81dc;
    }
LAB_000e8140:
    var_6 = 1;
    pcVar13 = var_5;
  } while( true );
code_r0x000e8064:
  (*(type_6 *)PTR_bb_simple_perror_msg_0012a218)(var_5);
  dumper->exitval = '\x01';
  goto LAB_000e8024;
code_r0x000e81dc:
  var_7 = dumper->argv;
  goto LAB_000e8028;
}


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

undefined4 MASKED(int *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined *puVar8;
  char *pcVar9;
  char *pcVar10;
  undefined1 auStack_c8 [24];
  uint local_b0;
  int local_90;
  uint local_8c;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  pcVar9 = PTR_UINT_0012a18c + 0x1a14;
  puVar8 = PTR_FUN_0012a1a8 + -0x54c0;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
LAB_000e8024:
  puVar2 = (undefined4 *)param_1[6];
  do {
    pcVar10 = (char *)*puVar2;
    if (pcVar10 == (char *)0x0) {
      uVar4 = 0;
      if (*(char *)((int)param_1 + 0x3d) != '\0') goto LAB_000e8144;
      *(undefined1 *)((int)param_1 + 0x3d) = 1;
      pcVar10 = pcVar9;
      if (*param_1 != 0 || param_1[1] != 0) goto LAB_000e80a8;
LAB_000e8140:
      uVar4 = 1;
LAB_000e8144:
      if (local_24 != *(int *)puVar1) {
        uVar4 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
        return uVar4;
      }
      return uVar4;
    }
    param_1[6] = (int)(puVar2 + 1);
    if (((*pcVar10 != '-') || (pcVar10[1] != '\0')) &&
       (iVar3 = (*(code *)PTR_freopen64_0012af60)(pcVar10,puVar8,*(undefined4 *)PTR_stdin_0012aee0),
       iVar3 == 0)) break;
    *(undefined1 *)((int)param_1 + 0x3d) = 1;
    if (*param_1 == 0 && param_1[1] == 0) {
      uVar4 = 1;
      goto LAB_000e8144;
    }
LAB_000e80a8:
    (*(code *)PTR_FUN_0012a954)(0,auStack_c8,pcVar10);
    iVar3 = *param_1;
    if (((local_b0 & 0xf000) != 0x8000) || (uVar5 = param_1[1], iVar3 < local_90)) {
LAB_000e80d8:
      iVar3 = (*(code *)PTR_fseeko64_0012ae28)(*(undefined4 *)PTR_stdin_0012aee0);
      if (iVar3 != 0) {
        (*(code *)PTR_FUN_0012a294)(pcVar10);
      }
      uVar5 = param_1[0xd];
      iVar3 = *param_1;
      uVar6 = uVar5 + param_1[1];
      param_1[1] = 0;
      *param_1 = 0;
      param_1[0xd] = uVar6;
      param_1[9] = uVar6;
      iVar3 = (uint)(uVar6 < uVar5) + param_1[0xc] + iVar3;
      param_1[0xc] = iVar3;
      param_1[8] = iVar3;
      goto LAB_000e8140;
    }
    if (local_90 == iVar3) {
      if (uVar5 < local_8c) goto LAB_000e80d8;
      uVar6 = param_1[0xd];
    }
    else {
      uVar6 = param_1[0xd];
    }
    uVar7 = uVar5 - local_8c;
    param_1[1] = uVar7;
    iVar3 = (iVar3 - local_90) - (uint)(uVar5 < uVar7);
    param_1[0xd] = uVar6 + local_8c;
    *param_1 = iVar3;
    param_1[0xc] = (uint)(uVar6 + local_8c < uVar6) + param_1[0xc] + local_90;
    if (iVar3 == 0 && uVar7 == 0) goto LAB_000e8140;
    puVar2 = (undefined4 *)param_1[6];
  } while( true );
  (*(code *)PTR_FUN_0012a218)(pcVar10);
  *(undefined1 *)(param_1 + 0xf) = 1;
  goto LAB_000e8024;
}

