
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: Mips_output_data_got<32,_false> * got_section(Target_mips<32,_false> *
   this) */

Mips_output_data_got<32,_false> * __thiscall
anon_unknown.dwarf_29466b::Target_mips<32,_false>::got_section(Target_mips<32,_false> *this)

{
  byte bVar1;
  uint uVar2;
  Mips_output_data_got<32,_false> *pMVar3;
  undefined *puVar4;
  int *piVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 in_a3;
  undefined *puVar9;
  code *pcVar10;
  code *pcVar11;
  
  iVar6 = 0xdae;
  puVar4 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;
  puVar9 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4);
  uVar2 = *(uint *)(puVar4 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {
      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));
    }
    return (Mips_output_data_got<32,_false> *)
           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));
  }
  iVar6 = 0xbd1;
  pcVar10 = *(code **)(puVar9 + 0x3ec5d4);
  piVar5 = (int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588);
  (*pcVar10)(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4);
  bVar1 = *(byte *)(iVar6 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {
      iVar6 = piVar5[2];
      piVar5[2] = iVar6 + 1;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
    }
    iVar6 = *piVar5;
    *piVar5 = iVar6 + 1;
    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      iVar6 = piVar5[4];
      piVar5[4] = iVar6 + 2;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);
    }
    if (bVar1 == 4) {
      iVar6 = piVar5[4];
      piVar5[4] = iVar6 + 1;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
    }
  }
  pcVar11 = *(code **)(pcVar10 + 0x3ec570);
  (*pcVar11)(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,
             in_a3,pcVar10 + 0x3f3d80);
  pcVar10 = *(code **)(pcVar11 + 0x3ec4b4);
  (*pcVar10)(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,
             in_a3,pcVar11 + 0x3f3cc4);
  pcVar11 = *(code **)(pcVar10 + 0x3ec480);
  (*pcVar11)(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,
             in_a3,pcVar10 + 0x3f3c90);
  pcVar10 = *(code **)(pcVar11 + 0x3ec44c);
  (*pcVar10)(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,
             in_a3,pcVar11 + 0x3f3c5c);
  pcVar11 = *(code **)(pcVar10 + 0x3ec418);
  (*pcVar11)(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,
             in_a3,pcVar10 + 0x3f3c28);
  iVar7 = 0xdae;
  pcVar10 = *(code **)(pcVar11 + 0x3ec3e4);
  iVar6 = *(int *)(pcVar11 + 0x3ebc30) + 0x3588;
  (*pcVar10)(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4);
  uVar2 = *(uint *)(iVar6 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar7 + 0x4c)) {
      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));
    }
    return (Mips_output_data_got<32,_false> *)
           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));
  }
  iVar6 = 0xbd1;
  pcVar11 = *(code **)(pcVar10 + 0x3ec3b0);
  piVar5 = (int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588);
  (*pcVar11)(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0);
  bVar1 = *(byte *)(iVar6 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {
      iVar6 = piVar5[2];
      piVar5[2] = iVar6 + 1;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
    }
    iVar6 = *piVar5;
    *piVar5 = iVar6 + 1;
    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      iVar6 = piVar5[4];
      piVar5[4] = iVar6 + 2;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);
    }
    if (bVar1 == 4) {
      iVar6 = piVar5[4];
      piVar5[4] = iVar6 + 1;
      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);
    }
  }
  pcVar10 = *(code **)(pcVar11 + 0x3ec34c);
  (*pcVar10)(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,
             in_a3,pcVar11 + 0x3f3b5c);
  uVar8 = 0x1f5;
  pcVar11 = *(code **)(pcVar10 + 0x3ec290);
  iVar6 = *(int *)(pcVar10 + 0x3ebadc) + 0x3588;
  (*pcVar11)(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0);
  if (*(int *)(iVar6 + 0x50) != 0) {
    iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));
    *(bool *)(iVar6 + 0x34) = iVar7 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);
    return pMVar3;
  }
  uVar8 = 0x7e;
  pcVar10 = *(code **)(pcVar11 + 0x3ec25c);
  iVar6 = *(int *)(pcVar11 + 0x3ebaa8) + 0x37c0;
  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4);
  if (*(int *)(iVar6 + 0x50) != 0) {
    iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));
    *(bool *)(iVar6 + 0x34) = iVar7 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);
    return pMVar3;
  }
  uVar8 = 0x7e;
  pcVar11 = *(code **)(pcVar10 + 0x3ec1e4);
  iVar6 = *(int *)(pcVar10 + 0x3eba30) + 0x37c0;
  (*pcVar11)(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50);
  if (*(int *)(iVar6 + 0x50) != 0) {
    iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));
    *(bool *)(iVar6 + 0x34) = iVar7 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);
    return pMVar3;
  }
  uVar8 = 0x7e;
  pcVar10 = *(code **)(pcVar11 + 0x3ec16c);
  iVar6 = *(int *)(pcVar11 + 0x3eb9b8) + 0x37c0;
  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0);
  if (*(int *)(iVar6 + 0x50) != 0) {
    iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));
    *(bool *)(iVar6 + 0x34) = iVar7 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);
    return pMVar3;
  }
  pcVar11 = *(code **)(pcVar10 + 0x3ec0f4);
  uVar2 = *(int *)(pcVar10 + 0x3eb940) + 0x37c0;
  (*pcVar11)(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90);
  if (uVar2 < 8) {
                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (Mips_output_data_got<32,_false> *)
             (*(pcVar11 +
               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +
                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();
    return pMVar3;
  }
  return (Mips_output_data_got<32,_false> *)(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc);
}



uint FUN_000d5428(void)

{
  byte bVar1;
  uint uVar2;
  undefined *puVar3;
  uint *puVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  undefined4 in_a3;
  undefined *puVar8;
  code *pcVar9;
  code *pcVar10;
  
  iVar5 = 0xdae;
  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;
  puVar8 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);
  uVar2 = *(uint *)(puVar3 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {
      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));
    }
    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));
  }
  iVar5 = 0xbd1;
  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);
  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);
  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);
  bVar1 = *(byte *)(iVar5 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {
      uVar2 = puVar4[2];
      puVar4[2] = uVar2 + 1;
      return uVar2 + 1;
    }
    uVar2 = *puVar4;
    *puVar4 = uVar2 + 1;
    return uVar2 + 1;
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 2;
      return uVar2 + 2;
    }
    if (bVar1 == 4) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 1;
      return uVar2 + 1;
    }
  }
  pcVar10 = *(code **)(pcVar9 + 0x3ec570);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,
             pcVar9 + 0x3f3d80);
  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3
            ,pcVar10 + 0x3f3cc4);
  pcVar10 = *(code **)(pcVar9 + 0x3ec480);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,
             pcVar9 + 0x3f3c90);
  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3
            ,pcVar10 + 0x3f3c5c);
  pcVar10 = *(code **)(pcVar9 + 0x3ec418);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,
             pcVar9 + 0x3f3c28);
  iVar6 = 0xdae;
  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);
  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;
  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);
  uVar2 = *(uint *)(iVar5 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {
      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));
    }
    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));
  }
  iVar5 = 0xbd1;
  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);
  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);
  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);
  bVar1 = *(byte *)(iVar5 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {
      uVar2 = puVar4[2];
      puVar4[2] = uVar2 + 1;
      return uVar2 + 1;
    }
    uVar2 = *puVar4;
    *puVar4 = uVar2 + 1;
    return uVar2 + 1;
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 2;
      return uVar2 + 2;
    }
    if (bVar1 == 4) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 1;
      return uVar2 + 1;
    }
  }
  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3
            ,pcVar10 + 0x3f3b5c);
  uVar7 = 0x1f5;
  pcVar10 = *(code **)(pcVar9 + 0x3ec290);
  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;
  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);
  if (*(int *)(iVar5 + 0x50) != 0) {
    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));
    *(bool *)(iVar5 + 0x34) = iVar6 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);
    return uVar2;
  }
  uVar7 = 0x7e;
  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);
  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;
  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);
  if (*(int *)(iVar5 + 0x50) != 0) {
    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));
    *(bool *)(iVar5 + 0x34) = iVar6 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);
    return uVar2;
  }
  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))
                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50
                    );
  return uVar2;
}


lui gp,0x3f
addiu gp,gp,0x3e18
addu gp,gp,t9
lw a2,-0x77f0(gp)
addiu sp,sp,-0x20
lw a0,-0x7fc4(gp)
li a1,0xdae
lw t9,-0x7810(gp)
addiu a2,a2,-0x4ad4
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x3588
(translation_unit "uint FUN_000d5428(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}\n\n" (function_definition "uint FUN_000d5428(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" type_identifier (function_declarator "FUN_000d5428(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (expression_statement "iVar5 = 0xdae;" (assignment_expression "iVar5 = 0xdae" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar8 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" ( identifier , number_literal , (binary_expression "PTR_s__s_004c1a50 + -0x4ad4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(puVar3 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(puVar3 + 0x4c)" identifier = (pointer_expression "*(uint *)(puVar3 + 0x4c)" * (cast_expression "(uint *)(puVar3 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x4c)" ( (binary_expression "puVar3 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar5 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar5 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" { (return_statement "return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));" return (call_expression "(uint)(uVar2 < *(uint *)(iVar5 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < *(uint *)(iVar5 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar5 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));" return (call_expression "(uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" ( (binary_expression "*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50)" (pointer_expression "*(uint *)(puVar3 + 0x50)" * (cast_expression "(uint *)(puVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x50)" ( (binary_expression "puVar3 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar5 + 0x50)" * (cast_expression "(uint *)(iVar5 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x3ec5d4);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x3ec5d4)" identifier = (pointer_expression "*(code **)(puVar8 + 0x3ec5d4)" * (cast_expression "(code **)(puVar8 + 0x3ec5d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x3ec5d4)" ( (binary_expression "puVar8 + 0x3ec5d4" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" identifier = (cast_expression "(uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" ( (binary_expression "*(int *)(puVar8 + 0x3ebe20) + 0x3588" (pointer_expression "*(int *)(puVar8 + 0x3ebe20)" * (cast_expression "(int *)(puVar8 + 0x3ebe20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x3ebe20)" ( (binary_expression "puVar8 + 0x3ebe20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);" (call_expression "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0" (pointer_expression "*(int *)(puVar8 + 0x3ec5f4)" * (cast_expression "(int *)(puVar8 + 0x3ec5f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x3ec5f4)" ( (binary_expression "puVar8 + 0x3ec5f4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar8 + 0x3f3de4" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar5 + 0xc)" * (cast_expression "(byte *)(iVar5 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" { (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" ( (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (return_statement "return uVar2 + 2;" return (binary_expression "uVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) })) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec570);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec570)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec570)" * (cast_expression "(code **)(pcVar9 + 0x3ec570)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec570)" ( (binary_expression "pcVar9 + 0x3ec570" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebdbc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebdbc)" * (cast_expression "(int *)(pcVar9 + 0x3ebdbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebdbc)" ( (binary_expression "pcVar9 + 0x3ebdbc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec590) + -0x4da4" (pointer_expression "*(int *)(pcVar9 + 0x3ec590)" * (cast_expression "(int *)(pcVar9 + 0x3ec590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec590)" ( (binary_expression "pcVar9 + 0x3ec590" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3d80" identifier + number_literal) ))) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec4b4)" * (cast_expression "(code **)(pcVar10 + 0x3ec4b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec4b4)" ( (binary_expression "pcVar10 + 0x3ec4b4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebd00) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebd00)" * (cast_expression "(int *)(pcVar10 + 0x3ebd00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebd00)" ( (binary_expression "pcVar10 + 0x3ebd00" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8" (pointer_expression "*(int *)(pcVar10 + 0x3ec4d4)" * (cast_expression "(int *)(pcVar10 + 0x3ec4d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec4d4)" ( (binary_expression "pcVar10 + 0x3ec4d4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3cc4" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec480);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec480)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec480)" * (cast_expression "(code **)(pcVar9 + 0x3ec480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec480)" ( (binary_expression "pcVar9 + 0x3ec480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebccc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebccc)" * (cast_expression "(int *)(pcVar9 + 0x3ebccc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebccc)" ( (binary_expression "pcVar9 + 0x3ebccc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec4a0) + -0x5148" (pointer_expression "*(int *)(pcVar9 + 0x3ec4a0)" * (cast_expression "(int *)(pcVar9 + 0x3ec4a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec4a0)" ( (binary_expression "pcVar9 + 0x3ec4a0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3c90" identifier + number_literal) ))) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec44c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec44c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec44c)" * (cast_expression "(code **)(pcVar10 + 0x3ec44c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec44c)" ( (binary_expression "pcVar10 + 0x3ec44c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebc98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc98)" * (cast_expression "(int *)(pcVar10 + 0x3ebc98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebc98)" ( (binary_expression "pcVar10 + 0x3ebc98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec46c) + -0x51c4" (pointer_expression "*(int *)(pcVar10 + 0x3ec46c)" * (cast_expression "(int *)(pcVar10 + 0x3ec46c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec46c)" ( (binary_expression "pcVar10 + 0x3ec46c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3c5c" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec418);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec418)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec418)" * (cast_expression "(code **)(pcVar9 + 0x3ec418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec418)" ( (binary_expression "pcVar9 + 0x3ec418" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebc64) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebc64)" * (cast_expression "(int *)(pcVar9 + 0x3ebc64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebc64)" ( (binary_expression "pcVar9 + 0x3ebc64" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec438) + -0x51d0" (pointer_expression "*(int *)(pcVar9 + 0x3ec438)" * (cast_expression "(int *)(pcVar9 + 0x3ec438)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec438)" ( (binary_expression "pcVar9 + 0x3ec438" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3c28" identifier + number_literal) ))) ;) (expression_statement "iVar6 = 0xdae;" (assignment_expression "iVar6 = 0xdae" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec3e4)" * (cast_expression "(code **)(pcVar10 + 0x3ec3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec3e4)" ( (binary_expression "pcVar10 + 0x3ec3e4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588" identifier = (binary_expression "*(int *)(pcVar10 + 0x3ebc30) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc30)" * (cast_expression "(int *)(pcVar10 + 0x3ebc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebc30)" ( (binary_expression "pcVar10 + 0x3ebc30" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);" (call_expression "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec404) + -0x5248" (pointer_expression "*(int *)(pcVar10 + 0x3ec404)" * (cast_expression "(int *)(pcVar10 + 0x3ec404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec404)" ( (binary_expression "pcVar10 + 0x3ec404" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3bf4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar6 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" { (return_statement "return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));" return (call_expression "(uint)(uVar2 < *(uint *)(iVar6 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar6 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));" return (call_expression "(uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" ( (binary_expression "*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50)" (pointer_expression "*(uint *)(iVar5 + 0x50)" * (cast_expression "(uint *)(iVar5 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar6 + 0x50)" * (cast_expression "(uint *)(iVar6 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec3b0)" * (cast_expression "(code **)(pcVar9 + 0x3ec3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec3b0)" ( (binary_expression "pcVar9 + 0x3ec3b0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" identifier = (cast_expression "(uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebbfc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebbfc)" * (cast_expression "(int *)(pcVar9 + 0x3ebbfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebbfc)" ( (binary_expression "pcVar9 + 0x3ebbfc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);" (call_expression "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec3d0) + -0x5440" (pointer_expression "*(int *)(pcVar9 + 0x3ec3d0)" * (cast_expression "(int *)(pcVar9 + 0x3ec3d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec3d0)" ( (binary_expression "pcVar9 + 0x3ec3d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3bc0" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar5 + 0xc)" * (cast_expression "(byte *)(iVar5 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" { (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" ( (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (return_statement "return uVar2 + 2;" return (binary_expression "uVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) })) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec34c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec34c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec34c)" * (cast_expression "(code **)(pcVar10 + 0x3ec34c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec34c)" ( (binary_expression "pcVar10 + 0x3ec34c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebb98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebb98)" * (cast_expression "(int *)(pcVar10 + 0x3ebb98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebb98)" ( (binary_expression "pcVar10 + 0x3ebb98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec36c) + -0x5504" (pointer_expression "*(int *)(pcVar10 + 0x3ec36c)" * (cast_expression "(int *)(pcVar10 + 0x3ec36c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec36c)" ( (binary_expression "pcVar10 + 0x3ec36c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3b5c" identifier + number_literal) ))) ;) (expression_statement "uVar7 = 0x1f5;" (assignment_expression "uVar7 = 0x1f5" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec290);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec290)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec290)" * (cast_expression "(code **)(pcVar9 + 0x3ec290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec290)" ( (binary_expression "pcVar9 + 0x3ec290" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588" identifier = (binary_expression "*(int *)(pcVar9 + 0x3ebadc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebadc)" * (cast_expression "(int *)(pcVar9 + 0x3ebadc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebadc)" ( (binary_expression "pcVar9 + 0x3ebadc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);" (call_expression "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec2b0) + -0x5518" (pointer_expression "*(int *)(pcVar9 + 0x3ec2b0)" * (cast_expression "(int *)(pcVar9 + 0x3ec2b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec2b0)" ( (binary_expression "pcVar9 + 0x3ec2b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3aa0" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" { (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" identifier = (call_expression "(**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar10 + 0x3f0294))" ( (pointer_expression "**(code **)(pcVar10 + 0x3f0294)" * (pointer_expression "*(code **)(pcVar10 + 0x3f0294)" * (cast_expression "(code **)(pcVar10 + 0x3f0294)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3f0294)" ( (binary_expression "pcVar10 + 0x3f0294" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" * (cast_expression "(bool *)(iVar5 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) comment comment (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" identifier = (call_expression "(**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x3ec2d8))" ( (pointer_expression "**(code **)(pcVar10 + 0x3ec2d8)" * (pointer_expression "*(code **)(pcVar10 + 0x3ec2d8)" * (cast_expression "(code **)(pcVar10 + 0x3ec2d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec2d8)" ( (binary_expression "pcVar10 + 0x3ec2d8" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar7 = 0x7e;" (assignment_expression "uVar7 = 0x7e" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec25c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec25c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec25c)" * (cast_expression "(code **)(pcVar10 + 0x3ec25c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec25c)" ( (binary_expression "pcVar10 + 0x3ec25c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" (pointer_expression "*(int *)(pcVar10 + 0x3ebaa8)" * (cast_expression "(int *)(pcVar10 + 0x3ebaa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebaa8)" ( (binary_expression "pcVar10 + 0x3ebaa8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);" (call_expression "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec27c) + -0x32a4" (pointer_expression "*(int *)(pcVar10 + 0x3ec27c)" * (cast_expression "(int *)(pcVar10 + 0x3ec27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec27c)" ( (binary_expression "pcVar10 + 0x3ec27c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" { (expression_statement "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" identifier = (call_expression "(**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar9 + 0x3f021c))" ( (pointer_expression "**(code **)(pcVar9 + 0x3f021c)" * (pointer_expression "*(code **)(pcVar9 + 0x3f021c)" * (cast_expression "(code **)(pcVar9 + 0x3f021c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3f021c)" ( (binary_expression "pcVar9 + 0x3f021c" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" * (cast_expression "(bool *)(iVar5 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) comment comment (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5)" identifier = (call_expression "(**(code **)(pcVar9 + 0x3ec260))(iVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec260))" ( (pointer_expression "**(code **)(pcVar9 + 0x3ec260)" * (pointer_expression "*(code **)(pcVar9 + 0x3ec260)" * (cast_expression "(code **)(pcVar9 + 0x3ec260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec260)" ( (binary_expression "pcVar9 + 0x3ec260" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" identifier = (call_expression "(**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec1e4))" ( (pointer_expression "**(code **)(pcVar9 + 0x3ec1e4)" * (pointer_expression "*(code **)(pcVar9 + 0x3ec1e4)" * (cast_expression "(code **)(pcVar9 + 0x3ec1e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec1e4)" ( (binary_expression "pcVar9 + 0x3ec1e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" ( (binary_expression "*(int *)(pcVar9 + 0x3eba30) + 0x37c0" (pointer_expression "*(int *)(pcVar9 + 0x3eba30)" * (cast_expression "(int *)(pcVar9 + 0x3eba30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3eba30)" ( (binary_expression "pcVar9 + 0x3eba30" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec204) + -0x3f50" (pointer_expression "*(int *)(pcVar9 + 0x3ec204)" * (cast_expression "(int *)(pcVar9 + 0x3ec204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec204)" ( (binary_expression "pcVar9 + 0x3ec204" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: Mips_output_data_got<32,_false> * got_section(Target_mips<32,_false> *\n   this) */\n\nMips_output_data_got<32,_false> * __thiscall\nanon_unknown.dwarf_29466b::Target_mips<32,_false>::got_section(Target_mips<32,_false> *this)\n\n{\n  byte bVar1;\n  uint uVar2;\n  Mips_output_data_got<32,_false> *pMVar3;\n  undefined *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 in_a3;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  iVar6 = 0xdae;\n  puVar4 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar4 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar6 = 0xbd1;\n  pcVar10 = *(code **)(puVar9 + 0x3ec5d4);\n  piVar5 = (int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588);\n  (*pcVar10)(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar6 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x3ec570);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,\n             in_a3,pcVar10 + 0x3f3d80);\n  pcVar10 = *(code **)(pcVar11 + 0x3ec4b4);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,\n             in_a3,pcVar11 + 0x3f3cc4);\n  pcVar11 = *(code **)(pcVar10 + 0x3ec480);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,\n             in_a3,pcVar10 + 0x3f3c90);\n  pcVar10 = *(code **)(pcVar11 + 0x3ec44c);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,\n             in_a3,pcVar11 + 0x3f3c5c);\n  pcVar11 = *(code **)(pcVar10 + 0x3ec418);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,\n             in_a3,pcVar10 + 0x3f3c28);\n  iVar7 = 0xdae;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec3e4);\n  iVar6 = *(int *)(pcVar11 + 0x3ebc30) + 0x3588;\n  (*pcVar10)(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar6 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar7 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));\n  }\n  iVar6 = 0xbd1;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec3b0);\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588);\n  (*pcVar11)(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar6 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x3ec34c);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,\n             in_a3,pcVar11 + 0x3f3b5c);\n  uVar8 = 0x1f5;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec290);\n  iVar6 = *(int *)(pcVar10 + 0x3ebadc) + 0x3588;\n  (*pcVar11)(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec25c);\n  iVar6 = *(int *)(pcVar11 + 0x3ebaa8) + 0x37c0;\n  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec1e4);\n  iVar6 = *(int *)(pcVar10 + 0x3eba30) + 0x37c0;\n  (*pcVar11)(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec16c);\n  iVar6 = *(int *)(pcVar11 + 0x3eb9b8) + 0x37c0;\n  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);\n    return pMVar3;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x3ec0f4);\n  uVar2 = *(int *)(pcVar10 + 0x3eb940) + 0x37c0;\n  (*pcVar11)(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90);\n  if (uVar2 < 8) {\n                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();\n    return pMVar3;\n  }\n  return (Mips_output_data_got<32,_false> *)(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc);\n}\n\n" comment comment comment comment comment comment comment (ERROR "Mips_output_data_got<32,_false> * __thiscall\nanon_unknown.dwarf_29466b::Target_mips<32,_false>::got_section(Target_mips<32,_false> *this)" (binary_expression "Mips_output_data_got<32,_false> * __thiscall\nanon_unknown.dwarf_29466b::Target_mips<32,_false>::got_section(Target_mips<32,_false> *this)" (binary_expression "Mips_output_data_got<32,_false> * __thiscall\nanon_unknown.dwarf_29466b::Target_mips<32" (binary_expression "Mips_output_data_got<32,_false> * __thiscall\nanon_unknown.dwarf_29466b" (binary_expression "Mips_output_data_got<32" identifier < number_literal) (ERROR ",_false" , identifier) > (ERROR "* __thiscall" (pointer_expression "* __thiscall" * identifier)) (field_expression "anon_unknown.dwarf_29466b" identifier . field_identifier)) (ERROR "::Target_mips" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "got_section(Target_mips<32,_false> *this)" identifier (argument_list "(Target_mips<32,_false> *this)" ( (binary_expression "Target_mips<32" identifier < number_literal) , (binary_expression "_false> *this" identifier > (pointer_expression "*this" * identifier)) ))))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  Mips_output_data_got<32,_false> *pMVar3;\n  undefined *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 in_a3;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  iVar6 = 0xdae;\n  puVar4 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar4 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar6 = 0xbd1;\n  pcVar10 = *(code **)(puVar9 + 0x3ec5d4);\n  piVar5 = (int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588);\n  (*pcVar10)(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar6 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x3ec570);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,\n             in_a3,pcVar10 + 0x3f3d80);\n  pcVar10 = *(code **)(pcVar11 + 0x3ec4b4);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,\n             in_a3,pcVar11 + 0x3f3cc4);\n  pcVar11 = *(code **)(pcVar10 + 0x3ec480);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,\n             in_a3,pcVar10 + 0x3f3c90);\n  pcVar10 = *(code **)(pcVar11 + 0x3ec44c);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,\n             in_a3,pcVar11 + 0x3f3c5c);\n  pcVar11 = *(code **)(pcVar10 + 0x3ec418);\n  (*pcVar11)(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,\n             in_a3,pcVar10 + 0x3f3c28);\n  iVar7 = 0xdae;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec3e4);\n  iVar6 = *(int *)(pcVar11 + 0x3ebc30) + 0x3588;\n  (*pcVar10)(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar6 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar7 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));\n  }\n  iVar6 = 0xbd1;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec3b0);\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588);\n  (*pcVar11)(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar6 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x3ec34c);\n  (*pcVar10)(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,\n             in_a3,pcVar11 + 0x3f3b5c);\n  uVar8 = 0x1f5;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec290);\n  iVar6 = *(int *)(pcVar10 + 0x3ebadc) + 0x3588;\n  (*pcVar11)(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec25c);\n  iVar6 = *(int *)(pcVar11 + 0x3ebaa8) + 0x37c0;\n  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar11 = *(code **)(pcVar10 + 0x3ec1e4);\n  iVar6 = *(int *)(pcVar10 + 0x3eba30) + 0x37c0;\n  (*pcVar11)(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);\n    return pMVar3;\n  }\n  uVar8 = 0x7e;\n  pcVar10 = *(code **)(pcVar11 + 0x3ec16c);\n  iVar6 = *(int *)(pcVar11 + 0x3eb9b8) + 0x37c0;\n  (*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0);\n  if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);\n    return pMVar3;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x3ec0f4);\n  uVar2 = *(int *)(pcVar10 + 0x3eb940) + 0x37c0;\n  (*pcVar11)(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90);\n  if (uVar2 < 8) {\n                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();\n    return pMVar3;\n  }\n  return (Mips_output_data_got<32,_false> *)(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "Mips_output_data_got<32,_false> *pMVar3;" (comma_expression "Mips_output_data_got<32,_false> *pMVar3" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *pMVar3" identifier > (pointer_expression "*pMVar3" * identifier))) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (expression_statement "iVar6 = 0xdae;" (assignment_expression "iVar6 = 0xdae" identifier = number_literal) ;) (expression_statement "puVar4 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;" (assignment_expression "puVar4 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar9 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" ( identifier , number_literal , (binary_expression "PTR_s__s_004c1a50 + -0x4ad4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(puVar4 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(puVar4 + 0x4c)" identifier = (pointer_expression "*(uint *)(puVar4 + 0x4c)" * (cast_expression "(uint *)(puVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x4c)" ( (binary_expression "puVar4 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar6 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" { (return_statement "return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c));" return (call_expression "(Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar6 + 0x4c))" (call_expression "(Mips_output_data_got<32,_false> *)(uint)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(uint)" ( identifier ))) (argument_list "(uVar2 < *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar6 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50));" return (call_expression "(Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50))" (call_expression "(Mips_output_data_got<32,_false> *)\n           (uint)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(uint)" ( identifier ))) (argument_list "(*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50))" ( (binary_expression "*(uint *)(puVar4 + 0x50) < *(uint *)(iVar6 + 0x50)" (pointer_expression "*(uint *)(puVar4 + 0x50)" * (cast_expression "(uint *)(puVar4 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x50)" ( (binary_expression "puVar4 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar6 + 0x50)" * (cast_expression "(uint *)(iVar6 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar6 = 0xbd1;" (assignment_expression "iVar6 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x3ec5d4);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x3ec5d4)" identifier = (pointer_expression "*(code **)(puVar9 + 0x3ec5d4)" * (cast_expression "(code **)(puVar9 + 0x3ec5d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x3ec5d4)" ( (binary_expression "puVar9 + 0x3ec5d4" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588);" (assignment_expression "piVar5 = (int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588)" identifier = (cast_expression "(int *)(*(int *)(puVar9 + 0x3ebe20) + 0x3588)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0x3ebe20) + 0x3588)" ( (binary_expression "*(int *)(puVar9 + 0x3ebe20) + 0x3588" (pointer_expression "*(int *)(puVar9 + 0x3ebe20)" * (cast_expression "(int *)(puVar9 + 0x3ebe20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x3ebe20)" ( (binary_expression "puVar9 + 0x3ebe20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4);" (call_expression "(*pcVar10)(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(piVar5,0xbd1,*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0,in_a3,puVar9 + 0x3f3de4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar9 + 0x3ec5f4) + -0x4ce0" (pointer_expression "*(int *)(puVar9 + 0x3ec5f4)" * (cast_expression "(int *)(puVar9 + 0x3ec5f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x3ec5f4)" ( (binary_expression "puVar9 + 0x3ec5f4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar9 + 0x3f3de4" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar6 + 0xc)" * (cast_expression "(byte *)(iVar6 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }" { (if_statement "if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" if (parenthesized_expression "((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar6 + 4) == -1)" ( (binary_expression "*(int *)(iVar6 + 4) == -1" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar6 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar6 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar6 + 8) + 0x4c" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" { (expression_statement "iVar6 = piVar5[2];" (assignment_expression "iVar6 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "piVar5[2] = iVar6 + 1;" (assignment_expression "piVar5[2] = iVar6 + 1" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*piVar5 = iVar6 + 1;" (assignment_expression "*piVar5 = iVar6 + 1" (pointer_expression "*piVar5" * identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }" { (expression_statement "iVar6 = piVar5[4];" (assignment_expression "iVar6 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "piVar5[4] = iVar6 + 2;" (assignment_expression "piVar5[4] = iVar6 + 2" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = (binary_expression "iVar6 + 2" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 2);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 2)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 2)" ( (binary_expression "iVar6 + 2" identifier + number_literal) ))) ;) })) (if_statement "if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" { (expression_statement "iVar6 = piVar5[4];" (assignment_expression "iVar6 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "piVar5[4] = iVar6 + 1;" (assignment_expression "piVar5[4] = iVar6 + 1" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec570);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec570)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec570)" * (cast_expression "(code **)(pcVar10 + 0x3ec570)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec570)" ( (binary_expression "pcVar10 + 0x3ec570" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,\n             in_a3,pcVar10 + 0x3f3d80);" (call_expression "(*pcVar11)(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,\n             in_a3,pcVar10 + 0x3f3d80)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec590) + -0x4da4,\n             in_a3,pcVar10 + 0x3f3d80)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebdbc) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebdbc)" * (cast_expression "(int *)(pcVar10 + 0x3ebdbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebdbc)" ( (binary_expression "pcVar10 + 0x3ebdbc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec590) + -0x4da4" (pointer_expression "*(int *)(pcVar10 + 0x3ec590)" * (cast_expression "(int *)(pcVar10 + 0x3ec590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec590)" ( (binary_expression "pcVar10 + 0x3ec590" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3d80" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec4b4);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec4b4)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec4b4)" * (cast_expression "(code **)(pcVar11 + 0x3ec4b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec4b4)" ( (binary_expression "pcVar11 + 0x3ec4b4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,\n             in_a3,pcVar11 + 0x3f3cc4);" (call_expression "(*pcVar10)(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,\n             in_a3,pcVar11 + 0x3f3cc4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8,\n             in_a3,pcVar11 + 0x3f3cc4)" ( (binary_expression "*(int *)(pcVar11 + 0x3ebd00) + 0x3588" (pointer_expression "*(int *)(pcVar11 + 0x3ebd00)" * (cast_expression "(int *)(pcVar11 + 0x3ebd00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ebd00)" ( (binary_expression "pcVar11 + 0x3ebd00" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec4d4) + -0x4db8" (pointer_expression "*(int *)(pcVar11 + 0x3ec4d4)" * (cast_expression "(int *)(pcVar11 + 0x3ec4d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec4d4)" ( (binary_expression "pcVar11 + 0x3ec4d4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar11 + 0x3f3cc4" identifier + number_literal) ))) ;) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec480);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec480)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec480)" * (cast_expression "(code **)(pcVar10 + 0x3ec480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec480)" ( (binary_expression "pcVar10 + 0x3ec480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,\n             in_a3,pcVar10 + 0x3f3c90);" (call_expression "(*pcVar11)(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,\n             in_a3,pcVar10 + 0x3f3c90)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar10 + 0x3ec4a0) + -0x5148,\n             in_a3,pcVar10 + 0x3f3c90)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebccc) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebccc)" * (cast_expression "(int *)(pcVar10 + 0x3ebccc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebccc)" ( (binary_expression "pcVar10 + 0x3ebccc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec4a0) + -0x5148" (pointer_expression "*(int *)(pcVar10 + 0x3ec4a0)" * (cast_expression "(int *)(pcVar10 + 0x3ec4a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec4a0)" ( (binary_expression "pcVar10 + 0x3ec4a0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3c90" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec44c);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec44c)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec44c)" * (cast_expression "(code **)(pcVar11 + 0x3ec44c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec44c)" ( (binary_expression "pcVar11 + 0x3ec44c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,\n             in_a3,pcVar11 + 0x3f3c5c);" (call_expression "(*pcVar10)(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,\n             in_a3,pcVar11 + 0x3f3c5c)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar11 + 0x3ec46c) + -0x51c4,\n             in_a3,pcVar11 + 0x3f3c5c)" ( (binary_expression "*(int *)(pcVar11 + 0x3ebc98) + 0x3588" (pointer_expression "*(int *)(pcVar11 + 0x3ebc98)" * (cast_expression "(int *)(pcVar11 + 0x3ebc98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ebc98)" ( (binary_expression "pcVar11 + 0x3ebc98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec46c) + -0x51c4" (pointer_expression "*(int *)(pcVar11 + 0x3ec46c)" * (cast_expression "(int *)(pcVar11 + 0x3ec46c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec46c)" ( (binary_expression "pcVar11 + 0x3ec46c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar11 + 0x3f3c5c" identifier + number_literal) ))) ;) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec418);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec418)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec418)" * (cast_expression "(code **)(pcVar10 + 0x3ec418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec418)" ( (binary_expression "pcVar10 + 0x3ec418" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,\n             in_a3,pcVar10 + 0x3f3c28);" (call_expression "(*pcVar11)(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,\n             in_a3,pcVar10 + 0x3f3c28)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar10 + 0x3ec438) + -0x51d0,\n             in_a3,pcVar10 + 0x3f3c28)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebc64) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc64)" * (cast_expression "(int *)(pcVar10 + 0x3ebc64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebc64)" ( (binary_expression "pcVar10 + 0x3ebc64" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec438) + -0x51d0" (pointer_expression "*(int *)(pcVar10 + 0x3ec438)" * (cast_expression "(int *)(pcVar10 + 0x3ec438)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec438)" ( (binary_expression "pcVar10 + 0x3ec438" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3c28" identifier + number_literal) ))) ;) (expression_statement "iVar7 = 0xdae;" (assignment_expression "iVar7 = 0xdae" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec3e4);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec3e4)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec3e4)" * (cast_expression "(code **)(pcVar11 + 0x3ec3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec3e4)" ( (binary_expression "pcVar11 + 0x3ec3e4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x3ebc30) + 0x3588;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x3ebc30) + 0x3588" identifier = (binary_expression "*(int *)(pcVar11 + 0x3ebc30) + 0x3588" (pointer_expression "*(int *)(pcVar11 + 0x3ebc30)" * (cast_expression "(int *)(pcVar11 + 0x3ebc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ebc30)" ( (binary_expression "pcVar11 + 0x3ebc30" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4);" (call_expression "(*pcVar10)(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar6,0xdae,*(int *)(pcVar11 + 0x3ec404) + -0x5248,in_a3,pcVar11 + 0x3f3bf4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec404) + -0x5248" (pointer_expression "*(int *)(pcVar11 + 0x3ec404)" * (cast_expression "(int *)(pcVar11 + 0x3ec404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec404)" ( (binary_expression "pcVar11 + 0x3ec404" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar11 + 0x3f3bf4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(iVar6 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar7 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar7 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }\n    return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar7 + 0x4c)) {\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar7 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar7 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar7 + 0x4c)" * (cast_expression "(uint *)(iVar7 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x4c)" ( (binary_expression "iVar7 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));\n    }" { (return_statement "return (Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c));" return (call_expression "(Mips_output_data_got<32,_false> *)(uint)(uVar2 < *(uint *)(iVar7 + 0x4c))" (call_expression "(Mips_output_data_got<32,_false> *)(uint)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(uint)" ( identifier ))) (argument_list "(uVar2 < *(uint *)(iVar7 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar7 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar7 + 0x4c)" * (cast_expression "(uint *)(iVar7 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x4c)" ( (binary_expression "iVar7 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50));" return (call_expression "(Mips_output_data_got<32,_false> *)\n           (uint)(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50))" (call_expression "(Mips_output_data_got<32,_false> *)\n           (uint)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(uint)" ( identifier ))) (argument_list "(*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50))" ( (binary_expression "*(uint *)(iVar6 + 0x50) < *(uint *)(iVar7 + 0x50)" (pointer_expression "*(uint *)(iVar6 + 0x50)" * (cast_expression "(uint *)(iVar6 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar7 + 0x50)" * (cast_expression "(uint *)(iVar7 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x50)" ( (binary_expression "iVar7 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar6 = 0xbd1;" (assignment_expression "iVar6 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec3b0);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec3b0)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec3b0)" * (cast_expression "(code **)(pcVar10 + 0x3ec3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec3b0)" ( (binary_expression "pcVar10 + 0x3ec3b0" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x3ebbfc) + 0x3588)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebbfc) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebbfc)" * (cast_expression "(int *)(pcVar10 + 0x3ebbfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebbfc)" ( (binary_expression "pcVar10 + 0x3ebbfc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar11)(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0);" (call_expression "(*pcVar11)(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(piVar5,0xbd1,*(int *)(pcVar10 + 0x3ec3d0) + -0x5440,in_a3,pcVar10 + 0x3f3bc0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec3d0) + -0x5440" (pointer_expression "*(int *)(pcVar10 + 0x3ec3d0)" * (cast_expression "(int *)(pcVar10 + 0x3ec3d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec3d0)" ( (binary_expression "pcVar10 + 0x3ec3d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3bc0" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar6 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar6 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar6 + 0xc)" * (cast_expression "(byte *)(iVar6 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n    iVar6 = *piVar5;\n    *piVar5 = iVar6 + 1;\n    return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n  }" { (if_statement "if ((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)) {\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" if (parenthesized_expression "((*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar6 + 4) == -1) && (*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar6 + 4) == -1)" ( (binary_expression "*(int *)(iVar6 + 4) == -1" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar6 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar6 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar6 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar6 + 8) + 0x4c" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      iVar6 = piVar5[2];\n      piVar5[2] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" { (expression_statement "iVar6 = piVar5[2];" (assignment_expression "iVar6 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "piVar5[2] = iVar6 + 1;" (assignment_expression "piVar5[2] = iVar6 + 1" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*piVar5 = iVar6 + 1;" (assignment_expression "*piVar5 = iVar6 + 1" (pointer_expression "*piVar5" * identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }\n    if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 2;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 2);\n    }" { (expression_statement "iVar6 = piVar5[4];" (assignment_expression "iVar6 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "piVar5[4] = iVar6 + 2;" (assignment_expression "piVar5[4] = iVar6 + 2" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = (binary_expression "iVar6 + 2" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 2);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 2)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 2)" ( (binary_expression "iVar6 + 2" identifier + number_literal) ))) ;) })) (if_statement "if (bVar1 == 4) {\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      iVar6 = piVar5[4];\n      piVar5[4] = iVar6 + 1;\n      return (Mips_output_data_got<32,_false> *)(iVar6 + 1);\n    }" { (expression_statement "iVar6 = piVar5[4];" (assignment_expression "iVar6 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "piVar5[4] = iVar6 + 1;" (assignment_expression "piVar5[4] = iVar6 + 1" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (return_statement "return (Mips_output_data_got<32,_false> *)(iVar6 + 1);" return (call_expression "(Mips_output_data_got<32,_false> *)(iVar6 + 1)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) })) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec34c);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec34c)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec34c)" * (cast_expression "(code **)(pcVar11 + 0x3ec34c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec34c)" ( (binary_expression "pcVar11 + 0x3ec34c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,\n             in_a3,pcVar11 + 0x3f3b5c);" (call_expression "(*pcVar10)(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,\n             in_a3,pcVar11 + 0x3f3b5c)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar11 + 0x3ec36c) + -0x5504,\n             in_a3,pcVar11 + 0x3f3b5c)" ( (binary_expression "*(int *)(pcVar11 + 0x3ebb98) + 0x3588" (pointer_expression "*(int *)(pcVar11 + 0x3ebb98)" * (cast_expression "(int *)(pcVar11 + 0x3ebb98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ebb98)" ( (binary_expression "pcVar11 + 0x3ebb98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec36c) + -0x5504" (pointer_expression "*(int *)(pcVar11 + 0x3ec36c)" * (cast_expression "(int *)(pcVar11 + 0x3ec36c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec36c)" ( (binary_expression "pcVar11 + 0x3ec36c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar11 + 0x3f3b5c" identifier + number_literal) ))) ;) (expression_statement "uVar8 = 0x1f5;" (assignment_expression "uVar8 = 0x1f5" identifier = number_literal) ;) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec290);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec290)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec290)" * (cast_expression "(code **)(pcVar10 + 0x3ec290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec290)" ( (binary_expression "pcVar10 + 0x3ec290" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar10 + 0x3ebadc) + 0x3588;" (assignment_expression "iVar6 = *(int *)(pcVar10 + 0x3ebadc) + 0x3588" identifier = (binary_expression "*(int *)(pcVar10 + 0x3ebadc) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebadc)" * (cast_expression "(int *)(pcVar10 + 0x3ebadc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebadc)" ( (binary_expression "pcVar10 + 0x3ebadc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0);" (call_expression "(*pcVar11)(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar6,0x1f5,*(int *)(pcVar10 + 0x3ec2b0) + -0x5518,in_a3,pcVar10 + 0x3f3aa0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec2b0) + -0x5518" (pointer_expression "*(int *)(pcVar10 + 0x3ec2b0)" * (cast_expression "(int *)(pcVar10 + 0x3ec2b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec2b0)" ( (binary_expression "pcVar10 + 0x3ec2b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3aa0" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);\n    return pMVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x50) != 0" (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);\n    return pMVar3;\n  }" { (expression_statement "iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50));" (assignment_expression "iVar7 = (**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50))" identifier = (call_expression "(**(code **)(pcVar11 + 0x3f0294))(uVar8,*(int *)(iVar6 + 0x50))" (parenthesized_expression "(**(code **)(pcVar11 + 0x3f0294))" ( (pointer_expression "**(code **)(pcVar11 + 0x3f0294)" * (pointer_expression "*(code **)(pcVar11 + 0x3f0294)" * (cast_expression "(code **)(pcVar11 + 0x3f0294)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3f0294)" ( (binary_expression "pcVar11 + 0x3f0294" identifier + number_literal) ))))) )) (argument_list "(uVar8,*(int *)(iVar6 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar6 + 0x34) = iVar7 == 0;" (assignment_expression "*(bool *)(iVar6 + 0x34) = iVar7 == 0" (pointer_expression "*(bool *)(iVar6 + 0x34)" * (cast_expression "(bool *)(iVar6 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) comment comment (expression_statement "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6);" (assignment_expression "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6)" identifier = (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))(iVar6)" (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec2d8))" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(**(code **)(pcVar11 + 0x3ec2d8))" ( (pointer_expression "**(code **)(pcVar11 + 0x3ec2d8)" * (pointer_expression "*(code **)(pcVar11 + 0x3ec2d8)" * (cast_expression "(code **)(pcVar11 + 0x3ec2d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec2d8)" ( (binary_expression "pcVar11 + 0x3ec2d8" identifier + number_literal) ))))) ))) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return pMVar3;" return identifier ;) })) (expression_statement "uVar8 = 0x7e;" (assignment_expression "uVar8 = 0x7e" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec25c);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec25c)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec25c)" * (cast_expression "(code **)(pcVar11 + 0x3ec25c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec25c)" ( (binary_expression "pcVar11 + 0x3ec25c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x3ebaa8) + 0x37c0;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x3ebaa8) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar11 + 0x3ebaa8) + 0x37c0" (pointer_expression "*(int *)(pcVar11 + 0x3ebaa8)" * (cast_expression "(int *)(pcVar11 + 0x3ebaa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ebaa8)" ( (binary_expression "pcVar11 + 0x3ebaa8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4);" (call_expression "(*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec27c) + -0x32a4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec27c) + -0x32a4" (pointer_expression "*(int *)(pcVar11 + 0x3ec27c)" * (cast_expression "(int *)(pcVar11 + 0x3ec27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec27c)" ( (binary_expression "pcVar11 + 0x3ec27c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);\n    return pMVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x50) != 0" (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);\n    return pMVar3;\n  }" { (expression_statement "iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50));" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50))" identifier = (call_expression "(**(code **)(pcVar10 + 0x3f021c))(uVar8,*(int *)(iVar6 + 0x50))" (parenthesized_expression "(**(code **)(pcVar10 + 0x3f021c))" ( (pointer_expression "**(code **)(pcVar10 + 0x3f021c)" * (pointer_expression "*(code **)(pcVar10 + 0x3f021c)" * (cast_expression "(code **)(pcVar10 + 0x3f021c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3f021c)" ( (binary_expression "pcVar10 + 0x3f021c" identifier + number_literal) ))))) )) (argument_list "(uVar8,*(int *)(iVar6 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar6 + 0x34) = iVar7 == 0;" (assignment_expression "*(bool *)(iVar6 + 0x34) = iVar7 == 0" (pointer_expression "*(bool *)(iVar6 + 0x34)" * (cast_expression "(bool *)(iVar6 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) comment comment (expression_statement "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6);" (assignment_expression "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6)" identifier = (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))(iVar6)" (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec260))" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(**(code **)(pcVar10 + 0x3ec260))" ( (pointer_expression "**(code **)(pcVar10 + 0x3ec260)" * (pointer_expression "*(code **)(pcVar10 + 0x3ec260)" * (cast_expression "(code **)(pcVar10 + 0x3ec260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec260)" ( (binary_expression "pcVar10 + 0x3ec260" identifier + number_literal) ))))) ))) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return pMVar3;" return identifier ;) })) (expression_statement "uVar8 = 0x7e;" (assignment_expression "uVar8 = 0x7e" identifier = number_literal) ;) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec1e4);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec1e4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec1e4)" * (cast_expression "(code **)(pcVar10 + 0x3ec1e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec1e4)" ( (binary_expression "pcVar10 + 0x3ec1e4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar10 + 0x3eba30) + 0x37c0;" (assignment_expression "iVar6 = *(int *)(pcVar10 + 0x3eba30) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar10 + 0x3eba30) + 0x37c0" (pointer_expression "*(int *)(pcVar10 + 0x3eba30)" * (cast_expression "(int *)(pcVar10 + 0x3eba30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3eba30)" ( (binary_expression "pcVar10 + 0x3eba30" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50);" (call_expression "(*pcVar11)(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar6,0x7e,*(int *)(pcVar10 + 0x3ec204) + -0x3f50)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec204) + -0x3f50" (pointer_expression "*(int *)(pcVar10 + 0x3ec204)" * (cast_expression "(int *)(pcVar10 + 0x3ec204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec204)" ( (binary_expression "pcVar10 + 0x3ec204" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);\n    return pMVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x50) != 0" (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);\n    return pMVar3;\n  }" { (expression_statement "iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50));" (assignment_expression "iVar7 = (**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50))" identifier = (call_expression "(**(code **)(pcVar11 + 0x3f01a4))(uVar8,*(int *)(iVar6 + 0x50))" (parenthesized_expression "(**(code **)(pcVar11 + 0x3f01a4))" ( (pointer_expression "**(code **)(pcVar11 + 0x3f01a4)" * (pointer_expression "*(code **)(pcVar11 + 0x3f01a4)" * (cast_expression "(code **)(pcVar11 + 0x3f01a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3f01a4)" ( (binary_expression "pcVar11 + 0x3f01a4" identifier + number_literal) ))))) )) (argument_list "(uVar8,*(int *)(iVar6 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar6 + 0x34) = iVar7 == 0;" (assignment_expression "*(bool *)(iVar6 + 0x34) = iVar7 == 0" (pointer_expression "*(bool *)(iVar6 + 0x34)" * (cast_expression "(bool *)(iVar6 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) comment comment (expression_statement "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6);" (assignment_expression "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6)" identifier = (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))(iVar6)" (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar11 + 0x3ec1e8))" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(**(code **)(pcVar11 + 0x3ec1e8))" ( (pointer_expression "**(code **)(pcVar11 + 0x3ec1e8)" * (pointer_expression "*(code **)(pcVar11 + 0x3ec1e8)" * (cast_expression "(code **)(pcVar11 + 0x3ec1e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec1e8)" ( (binary_expression "pcVar11 + 0x3ec1e8" identifier + number_literal) ))))) ))) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return pMVar3;" return identifier ;) })) (expression_statement "uVar8 = 0x7e;" (assignment_expression "uVar8 = 0x7e" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x3ec16c);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x3ec16c)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x3ec16c)" * (cast_expression "(code **)(pcVar11 + 0x3ec16c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x3ec16c)" ( (binary_expression "pcVar11 + 0x3ec16c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x3eb9b8) + 0x37c0;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x3eb9b8) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar11 + 0x3eb9b8) + 0x37c0" (pointer_expression "*(int *)(pcVar11 + 0x3eb9b8)" * (cast_expression "(int *)(pcVar11 + 0x3eb9b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3eb9b8)" ( (binary_expression "pcVar11 + 0x3eb9b8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0);" (call_expression "(*pcVar10)(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar6,0x7e,*(int *)(pcVar11 + 0x3ec18c) + -0x46b0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x3ec18c) + -0x46b0" (pointer_expression "*(int *)(pcVar11 + 0x3ec18c)" * (cast_expression "(int *)(pcVar11 + 0x3ec18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec18c)" ( (binary_expression "pcVar11 + 0x3ec18c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x50) != 0) {\n    iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);\n    return pMVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x50) != 0" (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));\n    *(bool *)(iVar6 + 0x34) = iVar7 == 0;\n                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);\n    return pMVar3;\n  }" { (expression_statement "iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50));" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50))" identifier = (call_expression "(**(code **)(pcVar10 + 0x3f012c))(uVar8,*(int *)(iVar6 + 0x50))" (parenthesized_expression "(**(code **)(pcVar10 + 0x3f012c))" ( (pointer_expression "**(code **)(pcVar10 + 0x3f012c)" * (pointer_expression "*(code **)(pcVar10 + 0x3f012c)" * (cast_expression "(code **)(pcVar10 + 0x3f012c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3f012c)" ( (binary_expression "pcVar10 + 0x3f012c" identifier + number_literal) ))))) )) (argument_list "(uVar8,*(int *)(iVar6 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar6 + 0x34) = iVar7 == 0;" (assignment_expression "*(bool *)(iVar6 + 0x34) = iVar7 == 0" (pointer_expression "*(bool *)(iVar6 + 0x34)" * (cast_expression "(bool *)(iVar6 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x34)" ( (binary_expression "iVar6 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) comment comment (expression_statement "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6);" (assignment_expression "pMVar3 = (Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6)" identifier = (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))(iVar6)" (call_expression "(Mips_output_data_got<32,_false> *)(**(code **)(pcVar10 + 0x3ec170))" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(**(code **)(pcVar10 + 0x3ec170))" ( (pointer_expression "**(code **)(pcVar10 + 0x3ec170)" * (pointer_expression "*(code **)(pcVar10 + 0x3ec170)" * (cast_expression "(code **)(pcVar10 + 0x3ec170)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec170)" ( (binary_expression "pcVar10 + 0x3ec170" identifier + number_literal) ))))) ))) (argument_list "(iVar6)" ( identifier )))) ;) (return_statement "return pMVar3;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x3ec0f4);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x3ec0f4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec0f4)" * (cast_expression "(code **)(pcVar10 + 0x3ec0f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec0f4)" ( (binary_expression "pcVar10 + 0x3ec0f4" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(int *)(pcVar10 + 0x3eb940) + 0x37c0;" (assignment_expression "uVar2 = *(int *)(pcVar10 + 0x3eb940) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar10 + 0x3eb940) + 0x37c0" (pointer_expression "*(int *)(pcVar10 + 0x3eb940)" * (cast_expression "(int *)(pcVar10 + 0x3eb940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3eb940)" ( (binary_expression "pcVar10 + 0x3eb940" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90);" (call_expression "(*pcVar11)(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(uVar2,0x7e,*(int *)(pcVar10 + 0x3ec114) + -0x4e90)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec114) + -0x4e90" (pointer_expression "*(int *)(pcVar10 + 0x3ec114)" * (cast_expression "(int *)(pcVar10 + 0x3ec114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec114)" ( (binary_expression "pcVar10 + 0x3ec114" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar2 < 8) {\n                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();\n    return pMVar3;\n  }" if (parenthesized_expression "(uVar2 < 8)" ( (binary_expression "uVar2 < 8" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();\n    return pMVar3;\n  }" { comment comment (expression_statement "pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))();" (assignment_expression "pMVar3 = (Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))()" identifier = (call_expression "(Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))()" (call_expression "(Mips_output_data_got<32,_false> *)\n             (*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)))" ( (pointer_expression "*(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4))" * (parenthesized_expression "(pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4))" ( (binary_expression "pcVar11 +\n               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)" identifier + (cast_expression "(int)("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "("Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4)" ( (binary_expression ""Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4) + 4" (binary_expression ""Warning: bad `%s\' option size %u smaller than its header in output section" +\n                    *(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4)" (string_literal ""Warning: bad `%s\' option size %u smaller than its header in output section"" " string_content escape_sequence string_content ") + (pointer_expression "*(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4)" * (cast_expression "(int *)(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4)" ( (binary_expression "*(int *)(pcVar11 + 0x3eb8c8) + 0x4988 + uVar2 * 4" (binary_expression "*(int *)(pcVar11 + 0x3eb8c8) + 0x4988" (pointer_expression "*(int *)(pcVar11 + 0x3eb8c8)" * (cast_expression "(int *)(pcVar11 + 0x3eb8c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3eb8c8)" ( (binary_expression "pcVar11 + 0x3eb8c8" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar2 * 4" identifier * number_literal)) ))))) + number_literal) )))) ))) ))) (argument_list "()" ( )))) ;) (return_statement "return pMVar3;" return identifier ;) })) (return_statement "return (Mips_output_data_got<32,_false> *)(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc);" return (call_expression "(Mips_output_data_got<32,_false> *)(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc)" (parenthesized_expression "(Mips_output_data_got<32,_false> *)" ( (comma_expression "Mips_output_data_got<32,_false> *" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc)" ( (binary_expression "*(int *)(pcVar11 + 0x3ec09c) + 0x7dcc" (pointer_expression "*(int *)(pcVar11 + 0x3ec09c)" * (cast_expression "(int *)(pcVar11 + 0x3ec09c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x3ec09c)" ( (binary_expression "pcVar11 + 0x3ec09c" identifier + number_literal) )))) + number_literal) ))) ;) }))
(translation_unit "uint FUN_000d5428(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}\n\n" (function_definition "uint FUN_000d5428(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" type_identifier (function_declarator "FUN_000d5428(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (expression_statement "iVar5 = 0xdae;" (assignment_expression "iVar5 = 0xdae" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar8 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" ( identifier , number_literal , (binary_expression "PTR_s__s_004c1a50 + -0x4ad4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(puVar3 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(puVar3 + 0x4c)" identifier = (pointer_expression "*(uint *)(puVar3 + 0x4c)" * (cast_expression "(uint *)(puVar3 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x4c)" ( (binary_expression "puVar3 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar5 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar5 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" { (return_statement "return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));" return (call_expression "(uint)(uVar2 < *(uint *)(iVar5 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < *(uint *)(iVar5 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar5 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));" return (call_expression "(uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" ( (binary_expression "*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50)" (pointer_expression "*(uint *)(puVar3 + 0x50)" * (cast_expression "(uint *)(puVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x50)" ( (binary_expression "puVar3 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar5 + 0x50)" * (cast_expression "(uint *)(iVar5 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x3ec5d4);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x3ec5d4)" identifier = (pointer_expression "*(code **)(puVar8 + 0x3ec5d4)" * (cast_expression "(code **)(puVar8 + 0x3ec5d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x3ec5d4)" ( (binary_expression "puVar8 + 0x3ec5d4" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" identifier = (cast_expression "(uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" ( (binary_expression "*(int *)(puVar8 + 0x3ebe20) + 0x3588" (pointer_expression "*(int *)(puVar8 + 0x3ebe20)" * (cast_expression "(int *)(puVar8 + 0x3ebe20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x3ebe20)" ( (binary_expression "puVar8 + 0x3ebe20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);" (call_expression "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0" (pointer_expression "*(int *)(puVar8 + 0x3ec5f4)" * (cast_expression "(int *)(puVar8 + 0x3ec5f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x3ec5f4)" ( (binary_expression "puVar8 + 0x3ec5f4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar8 + 0x3f3de4" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar5 + 0xc)" * (cast_expression "(byte *)(iVar5 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" { (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" ( (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (return_statement "return uVar2 + 2;" return (binary_expression "uVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) })) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec570);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec570)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec570)" * (cast_expression "(code **)(pcVar9 + 0x3ec570)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec570)" ( (binary_expression "pcVar9 + 0x3ec570" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebdbc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebdbc)" * (cast_expression "(int *)(pcVar9 + 0x3ebdbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebdbc)" ( (binary_expression "pcVar9 + 0x3ebdbc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec590) + -0x4da4" (pointer_expression "*(int *)(pcVar9 + 0x3ec590)" * (cast_expression "(int *)(pcVar9 + 0x3ec590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec590)" ( (binary_expression "pcVar9 + 0x3ec590" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3d80" identifier + number_literal) ))) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec4b4)" * (cast_expression "(code **)(pcVar10 + 0x3ec4b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec4b4)" ( (binary_expression "pcVar10 + 0x3ec4b4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebd00) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebd00)" * (cast_expression "(int *)(pcVar10 + 0x3ebd00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebd00)" ( (binary_expression "pcVar10 + 0x3ebd00" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8" (pointer_expression "*(int *)(pcVar10 + 0x3ec4d4)" * (cast_expression "(int *)(pcVar10 + 0x3ec4d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec4d4)" ( (binary_expression "pcVar10 + 0x3ec4d4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3cc4" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec480);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec480)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec480)" * (cast_expression "(code **)(pcVar9 + 0x3ec480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec480)" ( (binary_expression "pcVar9 + 0x3ec480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebccc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebccc)" * (cast_expression "(int *)(pcVar9 + 0x3ebccc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebccc)" ( (binary_expression "pcVar9 + 0x3ebccc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec4a0) + -0x5148" (pointer_expression "*(int *)(pcVar9 + 0x3ec4a0)" * (cast_expression "(int *)(pcVar9 + 0x3ec4a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec4a0)" ( (binary_expression "pcVar9 + 0x3ec4a0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3c90" identifier + number_literal) ))) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec44c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec44c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec44c)" * (cast_expression "(code **)(pcVar10 + 0x3ec44c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec44c)" ( (binary_expression "pcVar10 + 0x3ec44c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebc98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc98)" * (cast_expression "(int *)(pcVar10 + 0x3ebc98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebc98)" ( (binary_expression "pcVar10 + 0x3ebc98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec46c) + -0x51c4" (pointer_expression "*(int *)(pcVar10 + 0x3ec46c)" * (cast_expression "(int *)(pcVar10 + 0x3ec46c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec46c)" ( (binary_expression "pcVar10 + 0x3ec46c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3c5c" identifier + number_literal) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec418);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec418)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec418)" * (cast_expression "(code **)(pcVar9 + 0x3ec418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec418)" ( (binary_expression "pcVar9 + 0x3ec418" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebc64) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebc64)" * (cast_expression "(int *)(pcVar9 + 0x3ebc64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebc64)" ( (binary_expression "pcVar9 + 0x3ebc64" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec438) + -0x51d0" (pointer_expression "*(int *)(pcVar9 + 0x3ec438)" * (cast_expression "(int *)(pcVar9 + 0x3ec438)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec438)" ( (binary_expression "pcVar9 + 0x3ec438" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3c28" identifier + number_literal) ))) ;) (expression_statement "iVar6 = 0xdae;" (assignment_expression "iVar6 = 0xdae" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec3e4)" * (cast_expression "(code **)(pcVar10 + 0x3ec3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec3e4)" ( (binary_expression "pcVar10 + 0x3ec3e4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588" identifier = (binary_expression "*(int *)(pcVar10 + 0x3ebc30) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc30)" * (cast_expression "(int *)(pcVar10 + 0x3ebc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebc30)" ( (binary_expression "pcVar10 + 0x3ebc30" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);" (call_expression "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec404) + -0x5248" (pointer_expression "*(int *)(pcVar10 + 0x3ec404)" * (cast_expression "(int *)(pcVar10 + 0x3ec404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec404)" ( (binary_expression "pcVar10 + 0x3ec404" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3bf4" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" { (if_statement "if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" if (parenthesized_expression "(uVar2 != *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 != *(uint *)(iVar6 + 0x4c)" identifier != (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" { (return_statement "return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));" return (call_expression "(uint)(uVar2 < *(uint *)(iVar6 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < *(uint *)(iVar6 + 0x4c))" ( (binary_expression "uVar2 < *(uint *)(iVar6 + 0x4c)" identifier < (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ))) ;) })) (return_statement "return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));" return (call_expression "(uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" ( (binary_expression "*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50)" (pointer_expression "*(uint *)(iVar5 + 0x50)" * (cast_expression "(uint *)(iVar5 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar6 + 0x50)" * (cast_expression "(uint *)(iVar6 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) ))) ;) })) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec3b0)" * (cast_expression "(code **)(pcVar9 + 0x3ec3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec3b0)" ( (binary_expression "pcVar9 + 0x3ec3b0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" identifier = (cast_expression "(uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" ( (binary_expression "*(int *)(pcVar9 + 0x3ebbfc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebbfc)" * (cast_expression "(int *)(pcVar9 + 0x3ebbfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebbfc)" ( (binary_expression "pcVar9 + 0x3ebbfc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);" (call_expression "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec3d0) + -0x5440" (pointer_expression "*(int *)(pcVar9 + 0x3ec3d0)" * (cast_expression "(int *)(pcVar9 + 0x3ec3d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec3d0)" ( (binary_expression "pcVar9 + 0x3ec3d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3bc0" identifier + number_literal) ))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" identifier = (pointer_expression "*(byte *)(iVar5 + 0xc)" * (cast_expression "(byte *)(iVar5 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" { (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" ( (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" ( (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" ( (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" * (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" { (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" if (parenthesized_expression "(bVar1 < 3)" ( (binary_expression "bVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (return_statement "return uVar2 + 2;" return (binary_expression "uVar2 + 2" identifier + number_literal) ;) })) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" { (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (return_statement "return uVar2 + 1;" return (binary_expression "uVar2 + 1" identifier + number_literal) ;) })) })) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec34c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec34c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec34c)" * (cast_expression "(code **)(pcVar10 + 0x3ec34c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec34c)" ( (binary_expression "pcVar10 + 0x3ec34c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" ( (binary_expression "*(int *)(pcVar10 + 0x3ebb98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebb98)" * (cast_expression "(int *)(pcVar10 + 0x3ebb98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebb98)" ( (binary_expression "pcVar10 + 0x3ebb98" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec36c) + -0x5504" (pointer_expression "*(int *)(pcVar10 + 0x3ec36c)" * (cast_expression "(int *)(pcVar10 + 0x3ec36c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec36c)" ( (binary_expression "pcVar10 + 0x3ec36c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar10 + 0x3f3b5c" identifier + number_literal) ))) ;) (expression_statement "uVar7 = 0x1f5;" (assignment_expression "uVar7 = 0x1f5" identifier = number_literal) ;) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec290);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec290)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x3ec290)" * (cast_expression "(code **)(pcVar9 + 0x3ec290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec290)" ( (binary_expression "pcVar9 + 0x3ec290" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588" identifier = (binary_expression "*(int *)(pcVar9 + 0x3ebadc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebadc)" * (cast_expression "(int *)(pcVar9 + 0x3ebadc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ebadc)" ( (binary_expression "pcVar9 + 0x3ebadc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);" (call_expression "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec2b0) + -0x5518" (pointer_expression "*(int *)(pcVar9 + 0x3ec2b0)" * (cast_expression "(int *)(pcVar9 + 0x3ec2b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec2b0)" ( (binary_expression "pcVar9 + 0x3ec2b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar9 + 0x3f3aa0" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" { (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" identifier = (call_expression "(**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar10 + 0x3f0294))" ( (pointer_expression "**(code **)(pcVar10 + 0x3f0294)" * (pointer_expression "*(code **)(pcVar10 + 0x3f0294)" * (cast_expression "(code **)(pcVar10 + 0x3f0294)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3f0294)" ( (binary_expression "pcVar10 + 0x3f0294" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" * (cast_expression "(bool *)(iVar5 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" identifier = (call_expression "(**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x3ec2d8))" ( (pointer_expression "**(code **)(pcVar10 + 0x3ec2d8)" * (pointer_expression "*(code **)(pcVar10 + 0x3ec2d8)" * (cast_expression "(code **)(pcVar10 + 0x3ec2d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec2d8)" ( (binary_expression "pcVar10 + 0x3ec2d8" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar7 = 0x7e;" (assignment_expression "uVar7 = 0x7e" identifier = number_literal) ;) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec25c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec25c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x3ec25c)" * (cast_expression "(code **)(pcVar10 + 0x3ec25c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x3ec25c)" ( (binary_expression "pcVar10 + 0x3ec25c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" identifier = (binary_expression "*(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" (pointer_expression "*(int *)(pcVar10 + 0x3ebaa8)" * (cast_expression "(int *)(pcVar10 + 0x3ebaa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ebaa8)" ( (binary_expression "pcVar10 + 0x3ebaa8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);" (call_expression "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x3ec27c) + -0x32a4" (pointer_expression "*(int *)(pcVar10 + 0x3ec27c)" * (cast_expression "(int *)(pcVar10 + 0x3ec27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x3ec27c)" ( (binary_expression "pcVar10 + 0x3ec27c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" { (expression_statement "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" identifier = (call_expression "(**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar9 + 0x3f021c))" ( (pointer_expression "**(code **)(pcVar9 + 0x3f021c)" * (pointer_expression "*(code **)(pcVar9 + 0x3f021c)" * (cast_expression "(code **)(pcVar9 + 0x3f021c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3f021c)" ( (binary_expression "pcVar9 + 0x3f021c" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" ( identifier , (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" * (cast_expression "(bool *)(iVar5 + 0x34)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5)" identifier = (call_expression "(**(code **)(pcVar9 + 0x3ec260))(iVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec260))" ( (pointer_expression "**(code **)(pcVar9 + 0x3ec260)" * (pointer_expression "*(code **)(pcVar9 + 0x3ec260)" * (cast_expression "(code **)(pcVar9 + 0x3ec260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec260)" ( (binary_expression "pcVar9 + 0x3ec260" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" identifier = (call_expression "(**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec1e4))" ( (pointer_expression "**(code **)(pcVar9 + 0x3ec1e4)" * (pointer_expression "*(code **)(pcVar9 + 0x3ec1e4)" * (cast_expression "(code **)(pcVar9 + 0x3ec1e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x3ec1e4)" ( (binary_expression "pcVar9 + 0x3ec1e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" ( (binary_expression "*(int *)(pcVar9 + 0x3eba30) + 0x37c0" (pointer_expression "*(int *)(pcVar9 + 0x3eba30)" * (cast_expression "(int *)(pcVar9 + 0x3eba30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3eba30)" ( (binary_expression "pcVar9 + 0x3eba30" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x3ec204) + -0x3f50" (pointer_expression "*(int *)(pcVar9 + 0x3ec204)" * (cast_expression "(int *)(pcVar9 + 0x3ec204)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x3ec204)" ( (binary_expression "pcVar9 + 0x3ec204" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000d5428(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" (type_identifier "uint") (function_declarator "FUN_000d5428(void)" (identifier "FUN_000d5428") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 in_a3;\n  undefined *puVar8;\n  code *pcVar9;\n  code *pcVar10;\n  \n  iVar5 = 0xdae;\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;\n  puVar8 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);\n  uVar2 = *(uint *)(puVar3 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);\n  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);\n  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar10 = *(code **)(pcVar9 + 0x3ec570);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec480);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);\n  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);\n  pcVar10 = *(code **)(pcVar9 + 0x3ec418);\n  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);\n  iVar6 = 0xdae;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);\n  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;\n  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);\n  uVar2 = *(uint *)(iVar5 + 0x4c);\n  if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }\n  iVar5 = 0xbd1;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);\n  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);\n  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);\n  bVar1 = *(byte *)(iVar5 + 0xc);\n  if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }\n  if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }\n  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);\n  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);\n  uVar7 = 0x1f5;\n  pcVar10 = *(code **)(pcVar9 + 0x3ec290);\n  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;\n  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }\n  uVar7 = 0x7e;\n  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);\n  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;\n  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);\n  if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }\n  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );\n  return uVar2;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 in_a3;" (type_identifier "undefined4") (identifier "in_a3") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (expression_statement "iVar5 = 0xdae;" (assignment_expression "iVar5 = 0xdae" (identifier "iVar5") (= "=") (number_literal "0xdae")) (; ";")) (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" (identifier "puVar3") (= "=") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3588"))) (; ";")) (expression_statement "puVar8 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar8 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar8") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4)" (( "(") (identifier "puVar3") (, ",") (number_literal "0xdae") (, ",") (binary_expression "PTR_s__s_004c1a50 + -0x4ad4" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "-0x4ad4")) () ")"))) (; ";")) (expression_statement "uVar2 = *(uint *)(puVar3 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(puVar3 + 0x4c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(puVar3 + 0x4c)" (* "*") (cast_expression "(uint *)(puVar3 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x4c)" (( "(") (binary_expression "puVar3 + 0x4c" (identifier "puVar3") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }\n    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));\n  }" ({ "{") (if_statement "if (uVar2 != *(uint *)(iVar5 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" (if "if") (parenthesized_expression "(uVar2 != *(uint *)(iVar5 + 0x4c))" (( "(") (binary_expression "uVar2 != *(uint *)(iVar5 + 0x4c)" (identifier "uVar2") (!= "!=") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));\n    }" ({ "{") (return_statement "return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));" (return "return") (call_expression "(uint)(uVar2 < *(uint *)(iVar5 + 0x4c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < *(uint *)(iVar5 + 0x4c))" (( "(") (binary_expression "uVar2 < *(uint *)(iVar5 + 0x4c)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) () ")"))) (; ";")) (} "}"))) (return_statement "return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));" (return "return") (call_expression "(uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50))" (( "(") (binary_expression "*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50)" (pointer_expression "*(uint *)(puVar3 + 0x50)" (* "*") (cast_expression "(uint *)(puVar3 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x50)" (( "(") (binary_expression "puVar3 + 0x50" (identifier "puVar3") (+ "+") (number_literal "0x50")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar5 + 0x50)" (* "*") (cast_expression "(uint *)(iVar5 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")"))))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" (identifier "iVar5") (= "=") (number_literal "0xbd1")) (; ";")) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x3ec5d4);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x3ec5d4)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(puVar8 + 0x3ec5d4)" (* "*") (cast_expression "(code **)(puVar8 + 0x3ec5d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x3ec5d4)" (( "(") (binary_expression "puVar8 + 0x3ec5d4" (identifier "puVar8") (+ "+") (number_literal "0x3ec5d4")) () ")"))))) (; ";")) (expression_statement "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + 0x3ebe20) + 0x3588)" (( "(") (binary_expression "*(int *)(puVar8 + 0x3ebe20) + 0x3588" (pointer_expression "*(int *)(puVar8 + 0x3ebe20)" (* "*") (cast_expression "(int *)(puVar8 + 0x3ebe20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x3ebe20)" (( "(") (binary_expression "puVar8 + 0x3ebe20" (identifier "puVar8") (+ "+") (number_literal "0x3ebe20")) () ")")))) (+ "+") (number_literal "0x3588")) () ")")))) (; ";")) (expression_statement "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);" (call_expression "(*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4)" (( "(") (identifier "puVar4") (, ",") (number_literal "0xbd1") (, ",") (binary_expression "*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0" (pointer_expression "*(int *)(puVar8 + 0x3ec5f4)" (* "*") (cast_expression "(int *)(puVar8 + 0x3ec5f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x3ec5f4)" (( "(") (binary_expression "puVar8 + 0x3ec5f4" (identifier "puVar8") (+ "+") (number_literal "0x3ec5f4")) () ")")))) (+ "+") (number_literal "-0x4ce0")) (, ",") (identifier "in_a3") (, ",") (binary_expression "puVar8 + 0x3f3de4" (identifier "puVar8") (+ "+") (number_literal "0x3f3de4")) () ")"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar5 + 0xc)" (* "*") (cast_expression "(byte *)(iVar5 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" ({ "{") (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" (( "(") (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" (( "(") (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" (identifier "uVar2") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" (if "if") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" ({ "{") (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" (if "if") (parenthesized_expression "(bVar1 < 3)" (( "(") (binary_expression "bVar1 < 3" (identifier "bVar1") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (return_statement "return uVar2 + 2;" (return "return") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" (if "if") (parenthesized_expression "(bVar1 == 4)" (( "(") (binary_expression "bVar1 == 4" (identifier "bVar1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec570);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec570)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar9 + 0x3ec570)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec570)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec570)" (( "(") (binary_expression "pcVar9 + 0x3ec570" (identifier "pcVar9") (+ "+") (number_literal "0x3ec570")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,\n             pcVar9 + 0x3f3d80)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x3ebdbc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebdbc)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ebdbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ebdbc)" (( "(") (binary_expression "pcVar9 + 0x3ebdbc" (identifier "pcVar9") (+ "+") (number_literal "0x3ebdbc")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0x38c") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec590) + -0x4da4" (pointer_expression "*(int *)(pcVar9 + 0x3ec590)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec590)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec590)" (( "(") (binary_expression "pcVar9 + 0x3ec590" (identifier "pcVar9") (+ "+") (number_literal "0x3ec590")) () ")")))) (+ "+") (number_literal "-0x4da4")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar9 + 0x3f3d80" (identifier "pcVar9") (+ "+") (number_literal "0x3f3d80")) () ")"))) (; ";")) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec4b4)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x3ec4b4)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec4b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec4b4)" (( "(") (binary_expression "pcVar10 + 0x3ec4b4" (identifier "pcVar10") (+ "+") (number_literal "0x3ec4b4")) () ")"))))) (; ";")) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3\n            ,pcVar10 + 0x3f3cc4)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x3ebd00) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebd00)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ebd00)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ebd00)" (( "(") (binary_expression "pcVar10 + 0x3ebd00" (identifier "pcVar10") (+ "+") (number_literal "0x3ebd00")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0x1f5") (, ",") (binary_expression "*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8" (pointer_expression "*(int *)(pcVar10 + 0x3ec4d4)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ec4d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec4d4)" (( "(") (binary_expression "pcVar10 + 0x3ec4d4" (identifier "pcVar10") (+ "+") (number_literal "0x3ec4d4")) () ")")))) (+ "+") (number_literal "-0x4db8")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar10 + 0x3f3cc4" (identifier "pcVar10") (+ "+") (number_literal "0x3f3cc4")) () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec480);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec480)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar9 + 0x3ec480)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec480)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec480)" (( "(") (binary_expression "pcVar9 + 0x3ec480" (identifier "pcVar9") (+ "+") (number_literal "0x3ec480")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,\n             pcVar9 + 0x3f3c90)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x3ebccc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebccc)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ebccc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ebccc)" (( "(") (binary_expression "pcVar9 + 0x3ebccc" (identifier "pcVar9") (+ "+") (number_literal "0x3ebccc")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0xdba") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec4a0) + -0x5148" (pointer_expression "*(int *)(pcVar9 + 0x3ec4a0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec4a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec4a0)" (( "(") (binary_expression "pcVar9 + 0x3ec4a0" (identifier "pcVar9") (+ "+") (number_literal "0x3ec4a0")) () ")")))) (+ "+") (number_literal "-0x5148")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar9 + 0x3f3c90" (identifier "pcVar9") (+ "+") (number_literal "0x3f3c90")) () ")"))) (; ";")) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec44c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec44c)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x3ec44c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec44c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec44c)" (( "(") (binary_expression "pcVar10 + 0x3ec44c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec44c")) () ")"))))) (; ";")) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3\n            ,pcVar10 + 0x3f3c5c)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x3ebc98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc98)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ebc98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ebc98)" (( "(") (binary_expression "pcVar10 + 0x3ebc98" (identifier "pcVar10") (+ "+") (number_literal "0x3ebc98")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0xdc6") (, ",") (binary_expression "*(int *)(pcVar10 + 0x3ec46c) + -0x51c4" (pointer_expression "*(int *)(pcVar10 + 0x3ec46c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ec46c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec46c)" (( "(") (binary_expression "pcVar10 + 0x3ec46c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec46c")) () ")")))) (+ "+") (number_literal "-0x51c4")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar10 + 0x3f3c5c" (identifier "pcVar10") (+ "+") (number_literal "0x3f3c5c")) () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec418);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec418)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar9 + 0x3ec418)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec418)" (( "(") (binary_expression "pcVar9 + 0x3ec418" (identifier "pcVar9") (+ "+") (number_literal "0x3ec418")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28);" (call_expression "(*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,\n             pcVar9 + 0x3f3c28)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x3ebc64) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebc64)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ebc64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ebc64)" (( "(") (binary_expression "pcVar9 + 0x3ebc64" (identifier "pcVar9") (+ "+") (number_literal "0x3ebc64")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0xfff") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec438) + -0x51d0" (pointer_expression "*(int *)(pcVar9 + 0x3ec438)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec438)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec438)" (( "(") (binary_expression "pcVar9 + 0x3ec438" (identifier "pcVar9") (+ "+") (number_literal "0x3ec438")) () ")")))) (+ "+") (number_literal "-0x51d0")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar9 + 0x3f3c28" (identifier "pcVar9") (+ "+") (number_literal "0x3f3c28")) () ")"))) (; ";")) (expression_statement "iVar6 = 0xdae;" (assignment_expression "iVar6 = 0xdae" (identifier "iVar6") (= "=") (number_literal "0xdae")) (; ";")) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec3e4)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x3ec3e4)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec3e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec3e4)" (( "(") (binary_expression "pcVar10 + 0x3ec3e4" (identifier "pcVar10") (+ "+") (number_literal "0x3ec3e4")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar10 + 0x3ebc30) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebc30)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ebc30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ebc30)" (( "(") (binary_expression "pcVar10 + 0x3ebc30" (identifier "pcVar10") (+ "+") (number_literal "0x3ebc30")) () ")")))) (+ "+") (number_literal "0x3588"))) (; ";")) (expression_statement "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);" (call_expression "(*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4)" (( "(") (identifier "iVar5") (, ",") (number_literal "0xdae") (, ",") (binary_expression "*(int *)(pcVar10 + 0x3ec404) + -0x5248" (pointer_expression "*(int *)(pcVar10 + 0x3ec404)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ec404)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec404)" (( "(") (binary_expression "pcVar10 + 0x3ec404" (identifier "pcVar10") (+ "+") (number_literal "0x3ec404")) () ")")))) (+ "+") (number_literal "-0x5248")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar10 + 0x3f3bf4" (identifier "pcVar10") (+ "+") (number_literal "0x3f3bf4")) () ")"))) (; ";")) (expression_statement "uVar2 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar2 = *(uint *)(iVar5 + 0x4c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (uVar2 != 2) {\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }\n    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));\n  }" ({ "{") (if_statement "if (uVar2 != *(uint *)(iVar6 + 0x4c)) {\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" (if "if") (parenthesized_expression "(uVar2 != *(uint *)(iVar6 + 0x4c))" (( "(") (binary_expression "uVar2 != *(uint *)(iVar6 + 0x4c)" (identifier "uVar2") (!= "!=") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (compound_statement "{\n      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));\n    }" ({ "{") (return_statement "return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));" (return "return") (call_expression "(uint)(uVar2 < *(uint *)(iVar6 + 0x4c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < *(uint *)(iVar6 + 0x4c))" (( "(") (binary_expression "uVar2 < *(uint *)(iVar6 + 0x4c)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")"))))) () ")"))) (; ";")) (} "}"))) (return_statement "return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));" (return "return") (call_expression "(uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50))" (( "(") (binary_expression "*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50)" (pointer_expression "*(uint *)(iVar5 + 0x50)" (* "*") (cast_expression "(uint *)(iVar5 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar6 + 0x50)" (* "*") (cast_expression "(uint *)(iVar6 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x50)" (( "(") (binary_expression "iVar6 + 0x50" (identifier "iVar6") (+ "+") (number_literal "0x50")) () ")"))))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = 0xbd1;" (assignment_expression "iVar5 = 0xbd1" (identifier "iVar5") (= "=") (number_literal "0xbd1")) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec3b0)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar9 + 0x3ec3b0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec3b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec3b0)" (( "(") (binary_expression "pcVar9 + 0x3ec3b0" (identifier "pcVar9") (+ "+") (number_literal "0x3ec3b0")) () ")"))))) (; ";")) (expression_statement "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);" (assignment_expression "puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x3ebbfc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebbfc)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ebbfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ebbfc)" (( "(") (binary_expression "pcVar9 + 0x3ebbfc" (identifier "pcVar9") (+ "+") (number_literal "0x3ebbfc")) () ")")))) (+ "+") (number_literal "0x3588")) () ")")))) (; ";")) (expression_statement "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);" (call_expression "(*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0)" (( "(") (identifier "puVar4") (, ",") (number_literal "0xbd1") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec3d0) + -0x5440" (pointer_expression "*(int *)(pcVar9 + 0x3ec3d0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec3d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec3d0)" (( "(") (binary_expression "pcVar9 + 0x3ec3d0" (identifier "pcVar9") (+ "+") (number_literal "0x3ec3d0")) () ")")))) (+ "+") (number_literal "-0x5440")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar9 + 0x3f3bc0" (identifier "pcVar9") (+ "+") (number_literal "0x3f3bc0")) () ")"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar5 + 0xc);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0xc)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar5 + 0xc)" (* "*") (cast_expression "(byte *)(iVar5 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0) {\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n    uVar2 = *puVar4;\n    *puVar4 = uVar2 + 1;\n    return uVar2 + 1;\n  }" ({ "{") (if_statement "if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2))" (( "(") (binary_expression "(*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (parenthesized_expression "(*(int *)(iVar5 + 4) == -1)" (( "(") (binary_expression "*(int *)(iVar5 + 4) == -1" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2" (pointer_expression "*(int *)(*(int *)(iVar5 + 8) + 0x4c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 8) + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar5 + 8) + 0x4c" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar2 = puVar4[2];\n      puVar4[2] = uVar2 + 1;\n      return uVar2 + 1;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[2];" (assignment_expression "uVar2 = puVar4[2]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar4[2] = uVar2 + 1;" (assignment_expression "puVar4[2] = uVar2 + 1" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" (identifier "uVar2") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*puVar4 = uVar2 + 1;" (assignment_expression "*puVar4 = uVar2 + 1" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (bVar1 != 0) {\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" (if "if") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }\n    if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }\n  }" ({ "{") (if_statement "if (bVar1 < 3) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" (if "if") (parenthesized_expression "(bVar1 < 3)" (( "(") (binary_expression "bVar1 < 3" (identifier "bVar1") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 2;\n      return uVar2 + 2;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar4[4] = uVar2 + 2;" (assignment_expression "puVar4[4] = uVar2 + 2" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (return_statement "return uVar2 + 2;" (return "return") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (bVar1 == 4) {\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" (if "if") (parenthesized_expression "(bVar1 == 4)" (( "(") (binary_expression "bVar1 == 4" (identifier "bVar1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      uVar2 = puVar4[4];\n      puVar4[4] = uVar2 + 1;\n      return uVar2 + 1;\n    }" ({ "{") (expression_statement "uVar2 = puVar4[4];" (assignment_expression "uVar2 = puVar4[4]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar4[4] = uVar2 + 1;" (assignment_expression "puVar4[4] = uVar2 + 1" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return uVar2 + 1;" (return "return") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec34c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec34c)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x3ec34c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec34c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec34c)" (( "(") (binary_expression "pcVar10 + 0x3ec34c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec34c")) () ")"))))) (; ";")) (expression_statement "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c);" (call_expression "(*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3\n            ,pcVar10 + 0x3f3b5c)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x3ebb98) + 0x3588" (pointer_expression "*(int *)(pcVar10 + 0x3ebb98)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ebb98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ebb98)" (( "(") (binary_expression "pcVar10 + 0x3ebb98" (identifier "pcVar10") (+ "+") (number_literal "0x3ebb98")) () ")")))) (+ "+") (number_literal "0x3588")) (, ",") (number_literal "0x38c") (, ",") (binary_expression "*(int *)(pcVar10 + 0x3ec36c) + -0x5504" (pointer_expression "*(int *)(pcVar10 + 0x3ec36c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ec36c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec36c)" (( "(") (binary_expression "pcVar10 + 0x3ec36c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec36c")) () ")")))) (+ "+") (number_literal "-0x5504")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar10 + 0x3f3b5c" (identifier "pcVar10") (+ "+") (number_literal "0x3f3b5c")) () ")"))) (; ";")) (expression_statement "uVar7 = 0x1f5;" (assignment_expression "uVar7 = 0x1f5" (identifier "uVar7") (= "=") (number_literal "0x1f5")) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar9 + 0x3ec290);" (assignment_expression "pcVar10 = *(code **)(pcVar9 + 0x3ec290)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar9 + 0x3ec290)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec290)" (( "(") (binary_expression "pcVar9 + 0x3ec290" (identifier "pcVar9") (+ "+") (number_literal "0x3ec290")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;" (assignment_expression "iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar9 + 0x3ebadc) + 0x3588" (pointer_expression "*(int *)(pcVar9 + 0x3ebadc)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ebadc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ebadc)" (( "(") (binary_expression "pcVar9 + 0x3ebadc" (identifier "pcVar9") (+ "+") (number_literal "0x3ebadc")) () ")")))) (+ "+") (number_literal "0x3588"))) (; ";")) (expression_statement "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);" (call_expression "(*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0)" (( "(") (identifier "iVar5") (, ",") (number_literal "0x1f5") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec2b0) + -0x5518" (pointer_expression "*(int *)(pcVar9 + 0x3ec2b0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec2b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec2b0)" (( "(") (binary_expression "pcVar9 + 0x3ec2b0" (identifier "pcVar9") (+ "+") (number_literal "0x3ec2b0")) () ")")))) (+ "+") (number_literal "-0x5518")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar9 + 0x3f3aa0" (identifier "pcVar9") (+ "+") (number_literal "0x3f3aa0")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" (* "*") (cast_expression "(int *)(iVar5 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);\n    return uVar2;\n  }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar10 + 0x3f0294))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x3f0294)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x3f0294)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3f0294)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3f0294)" (( "(") (binary_expression "pcVar10 + 0x3f0294" (identifier "pcVar10") (+ "+") (number_literal "0x3f0294")) () ")"))))) () ")")) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" (( "(") (identifier "uVar7") (, ",") (pointer_expression "*(int *)(iVar5 + 0x50)" (* "*") (cast_expression "(int *)(iVar5 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) () ")")))) (; ";")) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" (* "*") (cast_expression "(bool *)(iVar5 + 0x34)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar10 + 0x3ec2d8))(iVar5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x3ec2d8))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x3ec2d8)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x3ec2d8)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec2d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec2d8)" (( "(") (binary_expression "pcVar10 + 0x3ec2d8" (identifier "pcVar10") (+ "+") (number_literal "0x3ec2d8")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "uVar7 = 0x7e;" (assignment_expression "uVar7 = 0x7e" (identifier "uVar7") (= "=") (number_literal "0x7e")) (; ";")) (expression_statement "pcVar9 = *(code **)(pcVar10 + 0x3ec25c);" (assignment_expression "pcVar9 = *(code **)(pcVar10 + 0x3ec25c)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x3ec25c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x3ec25c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec25c)" (( "(") (binary_expression "pcVar10 + 0x3ec25c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec25c")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;" (assignment_expression "iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar10 + 0x3ebaa8) + 0x37c0" (pointer_expression "*(int *)(pcVar10 + 0x3ebaa8)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ebaa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ebaa8)" (( "(") (binary_expression "pcVar10 + 0x3ebaa8" (identifier "pcVar10") (+ "+") (number_literal "0x3ebaa8")) () ")")))) (+ "+") (number_literal "0x37c0"))) (; ";")) (expression_statement "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);" (call_expression "(*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4)" (( "(") (identifier "iVar5") (, ",") (number_literal "0x7e") (, ",") (binary_expression "*(int *)(pcVar10 + 0x3ec27c) + -0x32a4" (pointer_expression "*(int *)(pcVar10 + 0x3ec27c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x3ec27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x3ec27c)" (( "(") (binary_expression "pcVar10 + 0x3ec27c" (identifier "pcVar10") (+ "+") (number_literal "0x3ec27c")) () ")")))) (+ "+") (number_literal "-0x32a4")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x50) != 0) {\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x50) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x50) != 0" (pointer_expression "*(int *)(iVar5 + 0x50)" (* "*") (cast_expression "(int *)(iVar5 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));\n    *(bool *)(iVar5 + 0x34) = iVar6 == 0;\n                    \n                    \n    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);\n    return uVar2;\n  }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));" (assignment_expression "iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50))" (parenthesized_expression "(**(code **)(pcVar9 + 0x3f021c))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x3f021c)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x3f021c)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3f021c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3f021c)" (( "(") (binary_expression "pcVar9 + 0x3f021c" (identifier "pcVar9") (+ "+") (number_literal "0x3f021c")) () ")"))))) () ")")) (argument_list "(uVar7,*(int *)(iVar5 + 0x50))" (( "(") (identifier "uVar7") (, ",") (pointer_expression "*(int *)(iVar5 + 0x50)" (* "*") (cast_expression "(int *)(iVar5 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) () ")")))) (; ";")) (expression_statement "*(bool *)(iVar5 + 0x34) = iVar6 == 0;" (assignment_expression "*(bool *)(iVar5 + 0x34) = iVar6 == 0" (pointer_expression "*(bool *)(iVar5 + 0x34)" (* "*") (cast_expression "(bool *)(iVar5 + 0x34)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x3ec260))(iVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec260))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x3ec260)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x3ec260)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec260)" (( "(") (binary_expression "pcVar9 + 0x3ec260" (identifier "pcVar9") (+ "+") (number_literal "0x3ec260")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    );" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x3ec1e4))\n                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" (parenthesized_expression "(**(code **)(pcVar9 + 0x3ec1e4))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x3ec1e4)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x3ec1e4)" (* "*") (cast_expression "(code **)(pcVar9 + 0x3ec1e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec1e4)" (( "(") (binary_expression "pcVar9 + 0x3ec1e4" (identifier "pcVar9") (+ "+") (number_literal "0x3ec1e4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50\n                    )" (( "(") (binary_expression "*(int *)(pcVar9 + 0x3eba30) + 0x37c0" (pointer_expression "*(int *)(pcVar9 + 0x3eba30)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3eba30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3eba30)" (( "(") (binary_expression "pcVar9 + 0x3eba30" (identifier "pcVar9") (+ "+") (number_literal "0x3eba30")) () ")")))) (+ "+") (number_literal "0x37c0")) (, ",") (number_literal "0x7e") (, ",") (binary_expression "*(int *)(pcVar9 + 0x3ec204) + -0x3f50" (pointer_expression "*(int *)(pcVar9 + 0x3ec204)" (* "*") (cast_expression "(int *)(pcVar9 + 0x3ec204)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x3ec204)" (( "(") (binary_expression "pcVar9 + 0x3ec204" (identifier "pcVar9") (+ "+") (number_literal "0x3ec204")) () ")")))) (+ "+") (number_literal "-0x3f50")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: Mips_output_data_got<32,_false> * got_section(Target_mips<32,_false> *
   this) */

var_1<32,var_2> * __thiscall
anon_unknown.dwarf_29466b::Target_mips<32,var_2>::got_section(Target_mips<32,var_2> *this)

{
  type_1 var_9;
  type_2 var_6;
  var_1<32,var_2> *pMVar3;
  type_3 *var_5;
  int *piVar5;
  int var_7;
  int var_12;
  type_4 uVar8;
  type_4 in_a3;
  type_3 *var_8;
  type_5 *var_10;
  type_5 *var_11;
  
  var_7 = 0xdae;
  var_5 = var_3 + 0x3588;
  var_8 = PTR_do_gold_unreachable_004c1a30;
  (*(type_5 *)PTR_do_gold_unreachable_004c1a30)(var_5,0xdae,var_4 + -0x4ad4);
  var_6 = *(type_2 *)(var_5 + 0x4c);
  if (var_6 != 2) {
    if (var_6 != *(type_2 *)(var_7 + 0x4c)) {
      return (var_1<32,var_2> *)(type_2)(var_6 < *(type_2 *)(var_7 + 0x4c));
    }
    return (var_1<32,var_2> *)
           (type_2)(*(type_2 *)(var_5 + 0x50) < *(type_2 *)(var_7 + 0x50));
  }
  var_7 = 0xbd1;
  var_10 = *(type_5 **)(var_8 + 0x3ec5d4);
  piVar5 = (int *)(*(int *)(var_8 + 0x3ebe20) + 0x3588);
  (*var_10)(piVar5,0xbd1,*(int *)(var_8 + 0x3ec5f4) + -0x4ce0,in_a3,var_8 + 0x3f3de4);
  var_9 = *(type_1 *)(var_7 + 0xc);
  if (var_9 == 0) {
    if ((*(int *)(var_7 + 4) == -1) && (*(int *)(*(int *)(var_7 + 8) + 0x4c) != 2)) {
      var_7 = piVar5[2];
      piVar5[2] = var_7 + 1;
      return (var_1<32,var_2> *)(var_7 + 1);
    }
    var_7 = *piVar5;
    *piVar5 = var_7 + 1;
    return (var_1<32,var_2> *)(var_7 + 1);
  }
  if (var_9 != 0) {
    if (var_9 < 3) {
      var_7 = piVar5[4];
      piVar5[4] = var_7 + 2;
      return (var_1<32,var_2> *)(var_7 + 2);
    }
    if (var_9 == 4) {
      var_7 = piVar5[4];
      piVar5[4] = var_7 + 1;
      return (var_1<32,var_2> *)(var_7 + 1);
    }
  }
  var_11 = *(type_5 **)(var_10 + 0x3ec570);
  (*var_11)(*(int *)(var_10 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(var_10 + 0x3ec590) + -0x4da4,
             in_a3,var_10 + 0x3f3d80);
  var_10 = *(type_5 **)(var_11 + 0x3ec4b4);
  (*var_10)(*(int *)(var_11 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(var_11 + 0x3ec4d4) + -0x4db8,
             in_a3,var_11 + 0x3f3cc4);
  var_11 = *(type_5 **)(var_10 + 0x3ec480);
  (*var_11)(*(int *)(var_10 + 0x3ebccc) + 0x3588,0xdba,*(int *)(var_10 + 0x3ec4a0) + -0x5148,
             in_a3,var_10 + 0x3f3c90);
  var_10 = *(type_5 **)(var_11 + 0x3ec44c);
  (*var_10)(*(int *)(var_11 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(var_11 + 0x3ec46c) + -0x51c4,
             in_a3,var_11 + 0x3f3c5c);
  var_11 = *(type_5 **)(var_10 + 0x3ec418);
  (*var_11)(*(int *)(var_10 + 0x3ebc64) + 0x3588,0xfff,*(int *)(var_10 + 0x3ec438) + -0x51d0,
             in_a3,var_10 + 0x3f3c28);
  var_12 = 0xdae;
  var_10 = *(type_5 **)(var_11 + 0x3ec3e4);
  var_7 = *(int *)(var_11 + 0x3ebc30) + 0x3588;
  (*var_10)(var_7,0xdae,*(int *)(var_11 + 0x3ec404) + -0x5248,in_a3,var_11 + 0x3f3bf4);
  var_6 = *(type_2 *)(var_7 + 0x4c);
  if (var_6 != 2) {
    if (var_6 != *(type_2 *)(var_12 + 0x4c)) {
      return (var_1<32,var_2> *)(type_2)(var_6 < *(type_2 *)(var_12 + 0x4c));
    }
    return (var_1<32,var_2> *)
           (type_2)(*(type_2 *)(var_7 + 0x50) < *(type_2 *)(var_12 + 0x50));
  }
  var_7 = 0xbd1;
  var_11 = *(type_5 **)(var_10 + 0x3ec3b0);
  piVar5 = (int *)(*(int *)(var_10 + 0x3ebbfc) + 0x3588);
  (*var_11)(piVar5,0xbd1,*(int *)(var_10 + 0x3ec3d0) + -0x5440,in_a3,var_10 + 0x3f3bc0);
  var_9 = *(type_1 *)(var_7 + 0xc);
  if (var_9 == 0) {
    if ((*(int *)(var_7 + 4) == -1) && (*(int *)(*(int *)(var_7 + 8) + 0x4c) != 2)) {
      var_7 = piVar5[2];
      piVar5[2] = var_7 + 1;
      return (var_1<32,var_2> *)(var_7 + 1);
    }
    var_7 = *piVar5;
    *piVar5 = var_7 + 1;
    return (var_1<32,var_2> *)(var_7 + 1);
  }
  if (var_9 != 0) {
    if (var_9 < 3) {
      var_7 = piVar5[4];
      piVar5[4] = var_7 + 2;
      return (var_1<32,var_2> *)(var_7 + 2);
    }
    if (var_9 == 4) {
      var_7 = piVar5[4];
      piVar5[4] = var_7 + 1;
      return (var_1<32,var_2> *)(var_7 + 1);
    }
  }
  var_10 = *(type_5 **)(var_11 + 0x3ec34c);
  (*var_10)(*(int *)(var_11 + 0x3ebb98) + 0x3588,0x38c,*(int *)(var_11 + 0x3ec36c) + -0x5504,
             in_a3,var_11 + 0x3f3b5c);
  uVar8 = 0x1f5;
  var_11 = *(type_5 **)(var_10 + 0x3ec290);
  var_7 = *(int *)(var_10 + 0x3ebadc) + 0x3588;
  (*var_11)(var_7,0x1f5,*(int *)(var_10 + 0x3ec2b0) + -0x5518,in_a3,var_10 + 0x3f3aa0);
  if (*(int *)(var_7 + 0x50) != 0) {
    var_12 = (**(type_5 **)(var_11 + 0x3f0294))(uVar8,*(int *)(var_7 + 0x50));
    *(bool *)(var_7 + 0x34) = var_12 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (var_1<32,var_2> *)(**(type_5 **)(var_11 + 0x3ec2d8))(var_7);
    return pMVar3;
  }
  uVar8 = 0x7e;
  var_10 = *(type_5 **)(var_11 + 0x3ec25c);
  var_7 = *(int *)(var_11 + 0x3ebaa8) + 0x37c0;
  (*var_10)(var_7,0x7e,*(int *)(var_11 + 0x3ec27c) + -0x32a4);
  if (*(int *)(var_7 + 0x50) != 0) {
    var_12 = (**(type_5 **)(var_10 + 0x3f021c))(uVar8,*(int *)(var_7 + 0x50));
    *(bool *)(var_7 + 0x34) = var_12 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (var_1<32,var_2> *)(**(type_5 **)(var_10 + 0x3ec260))(var_7);
    return pMVar3;
  }
  uVar8 = 0x7e;
  var_11 = *(type_5 **)(var_10 + 0x3ec1e4);
  var_7 = *(int *)(var_10 + 0x3eba30) + 0x37c0;
  (*var_11)(var_7,0x7e,*(int *)(var_10 + 0x3ec204) + -0x3f50);
  if (*(int *)(var_7 + 0x50) != 0) {
    var_12 = (**(type_5 **)(var_11 + 0x3f01a4))(uVar8,*(int *)(var_7 + 0x50));
    *(bool *)(var_7 + 0x34) = var_12 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5918. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (var_1<32,var_2> *)(**(type_5 **)(var_11 + 0x3ec1e8))(var_7);
    return pMVar3;
  }
  uVar8 = 0x7e;
  var_10 = *(type_5 **)(var_11 + 0x3ec16c);
  var_7 = *(int *)(var_11 + 0x3eb9b8) + 0x37c0;
  (*var_10)(var_7,0x7e,*(int *)(var_11 + 0x3ec18c) + -0x46b0);
  if (*(int *)(var_7 + 0x50) != 0) {
    var_12 = (**(type_5 **)(var_10 + 0x3f012c))(uVar8,*(int *)(var_7 + 0x50));
    *(bool *)(var_7 + 0x34) = var_12 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5990. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (var_1<32,var_2> *)(**(type_5 **)(var_10 + 0x3ec170))(var_7);
    return pMVar3;
  }
  var_11 = *(type_5 **)(var_10 + 0x3ec0f4);
  var_6 = *(int *)(var_10 + 0x3eb940) + 0x37c0;
  (*var_11)(var_6,0x7e,*(int *)(var_10 + 0x3ec114) + -0x4e90);
  if (var_6 < 8) {
                    /* WARNING: Could not recover jumptable at 0x000d59e4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pMVar3 = (var_1<32,var_2> *)
             (*(var_11 +
               (int)("Warning: bad `%s\' option size %u smaller than its header in output section" +
                    *(int *)(*(int *)(var_11 + 0x3eb8c8) + 0x4988 + var_6 * 4) + 4)))();
    return pMVar3;
  }
  return (var_1<32,var_2> *)(*(int *)(var_11 + 0x3ec09c) + 0x7dcc);
}


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

uint MASKED(void)

{
  byte bVar1;
  uint uVar2;
  undefined *puVar3;
  uint *puVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  undefined4 in_a3;
  undefined *puVar8;
  code *pcVar9;
  code *pcVar10;
  
  iVar5 = 0xdae;
  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3588;
  puVar8 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar3,0xdae,PTR_s__s_004c1a50 + -0x4ad4);
  uVar2 = *(uint *)(puVar3 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar5 + 0x4c)) {
      return (uint)(uVar2 < *(uint *)(iVar5 + 0x4c));
    }
    return (uint)(*(uint *)(puVar3 + 0x50) < *(uint *)(iVar5 + 0x50));
  }
  iVar5 = 0xbd1;
  pcVar9 = *(code **)(puVar8 + 0x3ec5d4);
  puVar4 = (uint *)(*(int *)(puVar8 + 0x3ebe20) + 0x3588);
  (*pcVar9)(puVar4,0xbd1,*(int *)(puVar8 + 0x3ec5f4) + -0x4ce0,in_a3,puVar8 + 0x3f3de4);
  bVar1 = *(byte *)(iVar5 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {
      uVar2 = puVar4[2];
      puVar4[2] = uVar2 + 1;
      return uVar2 + 1;
    }
    uVar2 = *puVar4;
    *puVar4 = uVar2 + 1;
    return uVar2 + 1;
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 2;
      return uVar2 + 2;
    }
    if (bVar1 == 4) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 1;
      return uVar2 + 1;
    }
  }
  pcVar10 = *(code **)(pcVar9 + 0x3ec570);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebdbc) + 0x3588,0x38c,*(int *)(pcVar9 + 0x3ec590) + -0x4da4,in_a3,
             pcVar9 + 0x3f3d80);
  pcVar9 = *(code **)(pcVar10 + 0x3ec4b4);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebd00) + 0x3588,0x1f5,*(int *)(pcVar10 + 0x3ec4d4) + -0x4db8,in_a3
            ,pcVar10 + 0x3f3cc4);
  pcVar10 = *(code **)(pcVar9 + 0x3ec480);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebccc) + 0x3588,0xdba,*(int *)(pcVar9 + 0x3ec4a0) + -0x5148,in_a3,
             pcVar9 + 0x3f3c90);
  pcVar9 = *(code **)(pcVar10 + 0x3ec44c);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebc98) + 0x3588,0xdc6,*(int *)(pcVar10 + 0x3ec46c) + -0x51c4,in_a3
            ,pcVar10 + 0x3f3c5c);
  pcVar10 = *(code **)(pcVar9 + 0x3ec418);
  (*pcVar10)(*(int *)(pcVar9 + 0x3ebc64) + 0x3588,0xfff,*(int *)(pcVar9 + 0x3ec438) + -0x51d0,in_a3,
             pcVar9 + 0x3f3c28);
  iVar6 = 0xdae;
  pcVar9 = *(code **)(pcVar10 + 0x3ec3e4);
  iVar5 = *(int *)(pcVar10 + 0x3ebc30) + 0x3588;
  (*pcVar9)(iVar5,0xdae,*(int *)(pcVar10 + 0x3ec404) + -0x5248,in_a3,pcVar10 + 0x3f3bf4);
  uVar2 = *(uint *)(iVar5 + 0x4c);
  if (uVar2 != 2) {
    if (uVar2 != *(uint *)(iVar6 + 0x4c)) {
      return (uint)(uVar2 < *(uint *)(iVar6 + 0x4c));
    }
    return (uint)(*(uint *)(iVar5 + 0x50) < *(uint *)(iVar6 + 0x50));
  }
  iVar5 = 0xbd1;
  pcVar10 = *(code **)(pcVar9 + 0x3ec3b0);
  puVar4 = (uint *)(*(int *)(pcVar9 + 0x3ebbfc) + 0x3588);
  (*pcVar10)(puVar4,0xbd1,*(int *)(pcVar9 + 0x3ec3d0) + -0x5440,in_a3,pcVar9 + 0x3f3bc0);
  bVar1 = *(byte *)(iVar5 + 0xc);
  if (bVar1 == 0) {
    if ((*(int *)(iVar5 + 4) == -1) && (*(int *)(*(int *)(iVar5 + 8) + 0x4c) != 2)) {
      uVar2 = puVar4[2];
      puVar4[2] = uVar2 + 1;
      return uVar2 + 1;
    }
    uVar2 = *puVar4;
    *puVar4 = uVar2 + 1;
    return uVar2 + 1;
  }
  if (bVar1 != 0) {
    if (bVar1 < 3) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 2;
      return uVar2 + 2;
    }
    if (bVar1 == 4) {
      uVar2 = puVar4[4];
      puVar4[4] = uVar2 + 1;
      return uVar2 + 1;
    }
  }
  pcVar9 = *(code **)(pcVar10 + 0x3ec34c);
  (*pcVar9)(*(int *)(pcVar10 + 0x3ebb98) + 0x3588,0x38c,*(int *)(pcVar10 + 0x3ec36c) + -0x5504,in_a3
            ,pcVar10 + 0x3f3b5c);
  uVar7 = 0x1f5;
  pcVar10 = *(code **)(pcVar9 + 0x3ec290);
  iVar5 = *(int *)(pcVar9 + 0x3ebadc) + 0x3588;
  (*pcVar10)(iVar5,0x1f5,*(int *)(pcVar9 + 0x3ec2b0) + -0x5518,in_a3,pcVar9 + 0x3f3aa0);
  if (*(int *)(iVar5 + 0x50) != 0) {
    iVar6 = (**(code **)(pcVar10 + 0x3f0294))(uVar7,*(int *)(iVar5 + 0x50));
    *(bool *)(iVar5 + 0x34) = iVar6 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d5828. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (**(code **)(pcVar10 + 0x3ec2d8))(iVar5);
    return uVar2;
  }
  uVar7 = 0x7e;
  pcVar9 = *(code **)(pcVar10 + 0x3ec25c);
  iVar5 = *(int *)(pcVar10 + 0x3ebaa8) + 0x37c0;
  (*pcVar9)(iVar5,0x7e,*(int *)(pcVar10 + 0x3ec27c) + -0x32a4);
  if (*(int *)(iVar5 + 0x50) != 0) {
    iVar6 = (**(code **)(pcVar9 + 0x3f021c))(uVar7,*(int *)(iVar5 + 0x50));
    *(bool *)(iVar5 + 0x34) = iVar6 == 0;
                    /* WARNING: Could not recover jumptable at 0x000d58a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (**(code **)(pcVar9 + 0x3ec260))(iVar5);
    return uVar2;
  }
  uVar2 = (**(code **)(pcVar9 + 0x3ec1e4))
                    (*(int *)(pcVar9 + 0x3eba30) + 0x37c0,0x7e,*(int *)(pcVar9 + 0x3ec204) + -0x3f50
                    );
  return uVar2;
}

