
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* 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_" */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original prototype: uint64_t abi_pagesize(Target * this) */

uint64_t __thiscall gold::Target::abi_pagesize(Target *this)

{
  longlong lVar1;
  int iVar2;
  uint uVar3;
  undefined4 uVar4;
  int *piVar5;
  byte bVar6;
  uint uVar7;
  char *pcVar8;
  undefined *puVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  Target *this_00;
  Expression *this_01;
  undefined4 *puVar13;
  uint uVar14;
  Symbol_table *symtab;
  Layout *layout;
  undefined4 in_a3;
  undefined1 check_assertions;
  char unaff_s0;
  char *unaff_s1;
  undefined4 *puVar15;
  undefined *puVar16;
  code *pcVar17;
  code *pcVar18;
  longlong lVar19;
  char acStack_88 [12];
  int iStack_7c;
  undefined4 *puStack_78;
  undefined4 *puStack_74;
  int iStack_48;
  int *piStack_44;
  
  puVar13 = (undefined4 *)&DAT_0000005c;
  puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;
  puVar16 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);
  iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0);
  if (iVar2 == 0) {
    iVar10 = *(int *)(puVar16 + 0x1c3db8);
LAB_002fdc84:
    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);
    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));
    return 0;
  }
  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar3 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar6 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar6 = (**(code **)(puVar16 + 0x1c4168))();
      bVar6 = bVar6 ^ 1;
    }
  }
  else {
    bVar6 = uVar3 != 0x8000;
  }
  iVar10 = *(int *)(puVar16 + 0x1c3db8);
  if (bVar6 == 0) goto LAB_002fdc84;
  puVar15 = (undefined4 *)puVar13[7];
  if (puVar15 != (undefined4 *)0x0) {
    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);
    *puVar15 = uVar4;
  }
  if ((uint *)puVar13[9] != (uint *)0x0) {
    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;
  }
  if ((uint *)puVar13[10] != (uint *)0x0) {
    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;
  }
  piVar5 = *(int **)(puVar16 + 0x1c3e50);
  if ((byte *)puVar13[0xb] != (byte *)0x0) {
    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar5 = *(int **)(puVar16 + 0x1c3e50);
  }
  if (*(int *)(*piVar5 + 0xc) != 0) {
    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);
    if (iVar10 == 0x20) {
      return (uint64_t)*(uint *)(iVar2 + 0x30);
    }
    if (iVar10 == 0x40) {
      return *(uint64_t *)(iVar2 + 0x30);
    }
    (**(code **)(puVar16 + 0x1c3ecc))
              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);
  }
  pcVar17 = *(code **)(puVar16 + 0x1c3ecc);
  iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8;
  (*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8);
  if (*(int *)(iVar10 + 4) == 0) {
    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);
    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);
    if (this_00 != (Target *)0x0) {
      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);
      pcVar18 = *(code **)(pcVar17 + 0x1c7158);
      if (iVar10 != 0) {
        uVar3 = *(uint *)(iVar10 + 0x5228);
        uVar7 = *(uint *)(iVar10 + 0x522c);
        if (uVar3 == 0 && uVar7 == 0) {
          return this_00->pti_->abi_pagesize;
        }
LAB_002fddc8:
        return CONCAT44(uVar3,uVar7);
      }
      goto LAB_002fdebc;
    }
LAB_002fde70:
    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);
LAB_002fde88:
    (**(code **)(pcVar17 + 0x1c3cec))
              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);
  }
  else {
    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;
    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);
    if (iVar10 == 0) {
      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);
      goto LAB_002fde70;
    }
    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);
    if (iVar11 != 0) {
      uVar3 = *(uint *)(iVar11 + 0x4e80);
      uVar7 = *(uint *)(iVar11 + 0x4e84);
      uVar14 = *(uint *)(iVar11 + 0x5228);
      uVar12 = *(uint *)(iVar11 + 0x522c);
      if (uVar3 == 0 && uVar7 == 0) {
        iVar2 = *(int *)(iVar10 + 4);
        if (uVar14 == 0 && uVar12 == 0) {
          uVar14 = *(uint *)(iVar2 + 0x20);
          uVar12 = *(uint *)(iVar2 + 0x24);
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar14 == 0 && uVar12 == 0) {
        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);
        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);
      }
      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {
        return CONCAT44(uVar14,uVar12);
      }
      goto LAB_002fddc8;
    }
  }
  pcVar18 = *(code **)(pcVar17 + 0x1c3cec);
  this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8);
  (*pcVar18)();
LAB_002fdebc:
  pcVar18 = pcVar18 + -0x24d0;
  abi_pagesize(this_00);
  if (piStack_44 != (int *)0x0) {
    *piStack_44 = 0;
  }
  acStack_88[0] = '\x01';
  pcVar8 = acStack_88;
  iStack_7c = iVar2;
  puStack_78 = puVar13;
  puStack_74 = puVar15;
  iVar2 = (*this_00->_vptr_Target[3])();
  lVar19 = CONCAT44(iVar2,pcVar8);
  if (unaff_s1 == (char *)0x0) {
    uVar4 = 0x9c;
    if (acStack_88[0] == '\0') goto LAB_002fdfb8;
  }
  else {
    *unaff_s1 = acStack_88[0];
  }
  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {
    while( true ) {
      check_assertions = (undefined1)in_a3;
      uVar4 = 0xa2;
      if (iStack_48 != 0) break;
LAB_002fdfb8:
      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))
                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,
                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);
    }
    if (-1 < *(int *)(iStack_48 + 0x20)) {
      symtab = (Symbol_table *)&DAT_000000c5;
      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);
      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);
      (**(code **)(pcVar18 + 0x1c3b68))();
                    /* WARNING: Subroutine does not return */
      Expression::eval_maybe_dot
                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,
                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,
                 (bool *)0x0);
    }
    lVar1 = *(longlong *)(iStack_48 + 8);
    *piStack_44 = iStack_48;
    return lVar19 + lVar1;
  }
  return CONCAT44(iVar2,pcVar8);
}



ulonglong FUN_002fdb30(void)

{
  longlong lVar1;
  int iVar2;
  uint uVar3;
  undefined4 uVar4;
  int *piVar5;
  byte bVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  Symbol_table *pSVar11;
  undefined4 *puVar12;
  uint uVar13;
  Layout *pLVar14;
  char cVar15;
  undefined4 in_a3;
  undefined1 uVar16;
  char unaff_s0;
  undefined1 *unaff_s1;
  undefined4 *puVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  ulonglong uVar21;
  uint in_stack_fffffeec;
  int iStack_48;
  int *piStack_44;
  
  puVar12 = (undefined4 *)&DAT_0000005c;
  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;
  puVar18 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);
  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);
  if (iVar2 == 0) {
    iVar9 = *(int *)(puVar18 + 0x1c3db8);
LAB_002fdc84:
    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);
    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));
    return 0;
  }
  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar3 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar6 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar6 = (**(code **)(puVar18 + 0x1c4168))();
      bVar6 = bVar6 ^ 1;
    }
  }
  else {
    bVar6 = uVar3 != 0x8000;
  }
  iVar9 = *(int *)(puVar18 + 0x1c3db8);
  if (bVar6 == 0) goto LAB_002fdc84;
  puVar17 = (undefined4 *)puVar12[7];
  if (puVar17 != (undefined4 *)0x0) {
    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);
    *puVar17 = uVar4;
  }
  if ((uint *)puVar12[9] != (uint *)0x0) {
    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;
  }
  if ((uint *)puVar12[10] != (uint *)0x0) {
    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;
  }
  piVar5 = *(int **)(puVar18 + 0x1c3e50);
  if ((byte *)puVar12[0xb] != (byte *)0x0) {
    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar5 = *(int **)(puVar18 + 0x1c3e50);
  }
  if (*(int *)(*piVar5 + 0xc) != 0) {
    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);
    if (iVar9 == 0x20) {
      return (ulonglong)*(uint *)(iVar2 + 0x30);
    }
    if (iVar9 == 0x40) {
      return *(ulonglong *)(iVar2 + 0x30);
    }
    (**(code **)(puVar18 + 0x1c3ecc))
              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);
  }
  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);
  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;
  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);
  if (*(int *)(iVar2 + 4) == 0) {
    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);
    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);
    if (piVar5 != (int *)0x0) {
      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);
      pcVar20 = *(code **)(pcVar19 + 0x1c7158);
      if (iVar2 != 0) {
        uVar3 = *(uint *)(iVar2 + 0x5228);
        uVar7 = *(uint *)(iVar2 + 0x522c);
        if (uVar3 == 0 && uVar7 == 0) {
          return *(ulonglong *)(piVar5[1] + 0x20);
        }
LAB_002fddc8:
        return CONCAT44(uVar3,uVar7);
      }
      goto LAB_002fdebc;
    }
LAB_002fde70:
    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);
LAB_002fde88:
    (**(code **)(pcVar19 + 0x1c3cec))
              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);
  }
  else {
    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;
    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);
    if (iVar2 == 0) {
      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);
      goto LAB_002fde70;
    }
    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);
    if (iVar9 != 0) {
      uVar3 = *(uint *)(iVar9 + 0x4e80);
      uVar7 = *(uint *)(iVar9 + 0x4e84);
      uVar13 = *(uint *)(iVar9 + 0x5228);
      uVar10 = *(uint *)(iVar9 + 0x522c);
      if (uVar3 == 0 && uVar7 == 0) {
        iVar2 = *(int *)(iVar2 + 4);
        if (uVar13 == 0 && uVar10 == 0) {
          uVar13 = *(uint *)(iVar2 + 0x20);
          uVar10 = *(uint *)(iVar2 + 0x24);
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar13 == 0 && uVar10 == 0) {
        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);
        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);
      }
      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {
        return CONCAT44(uVar13,uVar10);
      }
      goto LAB_002fddc8;
    }
  }
  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);
  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);
  (*pcVar20)();
LAB_002fdebc:
  pcVar20 = pcVar20 + -0x24d0;
  FUN_002fdb30();
  if (piStack_44 != (int *)0x0) {
    *piStack_44 = 0;
  }
  uVar21 = (**(code **)(*piVar5 + 0xc))();
  if (unaff_s1 != (undefined1 *)0x0) {
    *unaff_s1 = 1;
  }
  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {
    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {
      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))
                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,
                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);
    }
    if (*(int *)(iStack_48 + 0x20) < 0) {
      lVar1 = *(longlong *)(iStack_48 + 8);
      *piStack_44 = iStack_48;
      return uVar21 + lVar1;
    }
    pLVar14 = (Layout *)&DAT_000000c5;
    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';
    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);
    (**(code **)(pcVar20 + 0x1c3b68))();
    uVar21 = gold::Expression::eval_maybe_dot
                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,
                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,
                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);
    return uVar21;
  }
  return uVar21;
}


lui gp,0x1d
addiu gp,gp,-0x48f0
addu gp,gp,t9
lw a2,-0x7924(gp)
addiu sp,sp,-0x20
lw a0,-0x7fc4(gp)
li a1,0x5c
lw t9,-0x7810(gp)
addiu a2,a2,0x7f10
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,-0x9b8
(translation_unit "ulonglong FUN_002fdb30(void)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}\n\n" (function_definition "ulonglong FUN_002fdb30(void)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" type_identifier (function_declarator "FUN_002fdb30(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "Symbol_table *pSVar11;" type_identifier (pointer_declarator "*pSVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "Layout *pLVar14;" type_identifier (pointer_declarator "*pLVar14" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "char unaff_s0;" primitive_type identifier ;) (declaration "undefined1 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "ulonglong uVar21;" type_identifier identifier ;) (declaration "uint in_stack_fffffeec;" type_identifier identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int *piStack_44;" primitive_type (pointer_declarator "*piStack_44" * identifier) ;) (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;" (assignment_expression "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" (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 "(puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" identifier + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c42dc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c42dc)" * (pointer_expression "*(code **)(puVar18 + 0x1c42dc)" * (cast_expression "(code **)(puVar18 + 0x1c42dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c42dc)" ( (binary_expression "puVar18 + 0x1c42dc" identifier + number_literal) ))))) )) (argument_list "(*puVar12,*(undefined4 *)(puVar8 + 4),0)" ( (pointer_expression "*puVar12" * identifier) , (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" { (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" statement_identifier : (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c80cc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c80cc)" * (pointer_expression "*(code **)(puVar18 + 0x1c80cc)" * (cast_expression "(code **)(puVar18 + 0x1c80cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c80cc)" ( (binary_expression "puVar18 + 0x1c80cc" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x79fc)" ( (binary_expression "iVar9 + 0x79fc" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));" (call_expression "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4))" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ec8))" ( (pointer_expression "**(code **)(puVar18 + 0x1c3ec8)" * (pointer_expression "*(code **)(puVar18 + 0x1c3ec8)" * (cast_expression "(code **)(puVar18 + 0x1c3ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ec8)" ( (binary_expression "puVar18 + 0x1c3ec8" identifier + number_literal) ))))) )) (argument_list "(uVar4,*(undefined4 *)(puVar8 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000" identifier = (binary_expression "*(uint *)(iVar2 + 0x28) & 0xe000" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" if (parenthesized_expression "((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0)" ( (binary_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(iVar2 + 0x28) << 0x1d" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) )) (compound_statement "{\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar6 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar6 = *(int *)(iVar2 + 0xc) != 0" identifier = (binary_expression "*(int *)(iVar2 + 0xc) != 0" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) != number_literal)) ;) }) (else_clause "else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" else (compound_statement "{\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" { (expression_statement "bVar6 = (**(code **)(puVar18 + 0x1c4168))();" (assignment_expression "bVar6 = (**(code **)(puVar18 + 0x1c4168))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1c4168))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1c4168))" ( (pointer_expression "**(code **)(puVar18 + 0x1c4168)" * (pointer_expression "*(code **)(puVar18 + 0x1c4168)" * (cast_expression "(code **)(puVar18 + 0x1c4168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c4168)" ( (binary_expression "puVar18 + 0x1c4168" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar6 = bVar6 ^ 1;" (assignment_expression "bVar6 = bVar6 ^ 1" identifier = (binary_expression "bVar6 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar6 = uVar3 != 0x8000;\n  }" else (compound_statement "{\n    bVar6 = uVar3 != 0x8000;\n  }" { (expression_statement "bVar6 = uVar3 != 0x8000;" (assignment_expression "bVar6 = uVar3 != 0x8000" identifier = (binary_expression "uVar3 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) ))))) ;) (if_statement "if (bVar6 == 0) goto LAB_002fdc84;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002fdc84;" goto statement_identifier ;)) (expression_statement "puVar17 = (undefined4 *)puVar12[7];" (assignment_expression "puVar17 = (undefined4 *)puVar12[7]" identifier = (cast_expression "(undefined4 *)puVar12[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" if (parenthesized_expression "(puVar17 != (undefined4 *)0x0)" ( (binary_expression "puVar17 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c6da0))(iVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c6da0))" ( (pointer_expression "**(code **)(puVar18 + 0x1c6da0)" * (pointer_expression "*(code **)(puVar18 + 0x1c6da0)" * (cast_expression "(code **)(puVar18 + 0x1c6da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c6da0)" ( (binary_expression "puVar18 + 0x1c6da0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar17 = uVar4;" (assignment_expression "*puVar17 = uVar4" (pointer_expression "*puVar17" * identifier) = identifier) ;) })) (if_statement "if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "((uint *)puVar12[9] != (uint *)0x0)" ( (binary_expression "(uint *)puVar12[9] != (uint *)0x0" (cast_expression "(uint *)puVar12[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[9]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" { (expression_statement "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;" (assignment_expression "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)puVar12[9]" * (cast_expression "(uint *)puVar12[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[9]" identifier [ number_literal ]))) = (binary_expression "*(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) })) (if_statement "if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" if (parenthesized_expression "((uint *)puVar12[10] != (uint *)0x0)" ( (binary_expression "(uint *)puVar12[10] != (uint *)0x0" (cast_expression "(uint *)puVar12[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[10]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" { (expression_statement "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;" (assignment_expression "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (pointer_expression "*(uint *)puVar12[10]" * (cast_expression "(uint *)puVar12[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[10]" identifier [ number_literal ]))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 8)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 8" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" * (cast_expression "(int **)(puVar18 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3e50)" ( (binary_expression "puVar18 + 0x1c3e50" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" if (parenthesized_expression "((byte *)puVar12[0xb] != (byte *)0x0)" ( (binary_expression "(byte *)puVar12[0xb] != (byte *)0x0" (cast_expression "(byte *)puVar12[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[0xb]" identifier [ number_literal ])) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" { (expression_statement "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);" (assignment_expression "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (pointer_expression "*(byte *)puVar12[0xb]" * (cast_expression "(byte *)puVar12[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[0xb]" identifier [ number_literal ]))) = (call_expression "(byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" ( (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 10)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 10" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" * (cast_expression "(int **)(puVar18 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3e50)" ( (binary_expression "puVar18 + 0x1c3e50" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" if (parenthesized_expression "(*(int *)(*piVar5 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar5 + 0xc) != 0" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" { (expression_statement "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);" (assignment_expression "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar5 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar5 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar5 + 0xc) + 4" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" { (return_statement "return (ulonglong)*(uint *)(iVar2 + 0x30);" return (binary_expression "(ulonglong)*(uint *)(iVar2 + 0x30)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) )))) ;) })) (if_statement "if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar9 == 0x40)" ( (binary_expression "iVar9 == 0x40" identifier == number_literal) )) (compound_statement "{\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" { (return_statement "return *(ulonglong *)(iVar2 + 0x30);" return (pointer_expression "*(ulonglong *)(iVar2 + 0x30)" * (cast_expression "(ulonglong *)(iVar2 + 0x30)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) )))) ;) })) (expression_statement "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);" (call_expression "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ecc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c3ecc)" * (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" * (cast_expression "(code **)(puVar18 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ecc)" ( (binary_expression "puVar18 + 0x1c3ecc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" ( (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x79d0" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7f00" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar19 = *(code **)(puVar18 + 0x1c3ecc);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1c3ecc)" identifier = (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" * (cast_expression "(code **)(puVar18 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ecc)" ( (binary_expression "puVar18 + 0x1c3ecc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;" (assignment_expression "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8" identifier = (binary_expression "*(int *)(puVar18 + 0x1c3718) + -0x9b8" (pointer_expression "*(int *)(puVar18 + 0x1c3718)" * (cast_expression "(int *)(puVar18 + 0x1c3718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3718)" ( (binary_expression "puVar18 + 0x1c3718" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);" (call_expression "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" ( identifier , number_literal , (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7ef8" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 4) == 0)" ( (binary_expression "*(int *)(iVar2 + 4) == 0" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }" { (expression_statement "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" * (cast_expression "(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" { (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c7158);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c7158)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1c7158)" * (cast_expression "(code **)(pcVar19 + 0x1c7158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c7158)" ( (binary_expression "pcVar19 + 0x1c7158" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x5228)" * (cast_expression "(uint *)(iVar2 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x5228)" ( (binary_expression "iVar2 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x522c)" * (cast_expression "(uint *)(iVar2 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x522c)" ( (binary_expression "iVar2 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" { (return_statement "return *(ulonglong *)(piVar5[1] + 0x20);" return (pointer_expression "*(ulonglong *)(piVar5[1] + 0x20)" * (cast_expression "(ulonglong *)(piVar5[1] + 0x20)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[1] + 0x20)" ( (binary_expression "piVar5[1] + 0x20" (subscript_expression "piVar5[1]" identifier [ number_literal ]) + number_literal) )))) ;) })) (labeled_statement "LAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);" statement_identifier : (return_statement "return CONCAT44(uVar3,uVar7);" return (call_expression "CONCAT44(uVar3,uVar7)" identifier (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_002fdebc;" goto statement_identifier ;) })) (labeled_statement "LAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" statement_identifier : (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" * (cast_expression "(int *)(pcVar19 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3538)" ( (binary_expression "pcVar19 + 0x1c3538" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x7ef8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" statement_identifier : (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;" if (parenthesized_expression "(*(int *)(iVar2 + 4) != 1)" ( (binary_expression "*(int *)(iVar2 + 4) != 1" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_002fde88;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002fde70;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" { (expression_statement "uVar3 = *(uint *)(iVar9 + 0x4e80);" (assignment_expression "uVar3 = *(uint *)(iVar9 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x4e80)" * (cast_expression "(uint *)(iVar9 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4e80)" ( (binary_expression "iVar9 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar9 + 0x4e84);" (assignment_expression "uVar7 = *(uint *)(iVar9 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x4e84)" * (cast_expression "(uint *)(iVar9 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4e84)" ( (binary_expression "iVar9 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar9 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x5228)" * (cast_expression "(uint *)(iVar9 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5228)" ( (binary_expression "iVar9 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar9 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar9 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x522c)" * (cast_expression "(uint *)(iVar9 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x522c)" ( (binary_expression "iVar9 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }" { (expression_statement "iVar2 = *(int *)(iVar2 + 4);" (assignment_expression "iVar2 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" if (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" ( (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar13 = *(uint *)(iVar2 + 0x20);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x20)" * (cast_expression "(uint *)(iVar2 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x24);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" else (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" ( (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" { (expression_statement "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);" (assignment_expression "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x20)" * (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x20)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x20" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);" (assignment_expression "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x24)" * (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x24)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x24" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) })))) (if_statement "if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" if (parenthesized_expression "((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7))))" ( (binary_expression "(uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))" (parenthesized_expression "(uVar13 < uVar3)" ( (binary_expression "uVar13 < uVar3" identifier < identifier) )) || (parenthesized_expression "((uVar3 == uVar13 && (uVar10 < uVar7)))" ( (parenthesized_expression "(uVar3 == uVar13 && (uVar10 < uVar7))" ( (binary_expression "uVar3 == uVar13 && (uVar10 < uVar7)" (binary_expression "uVar3 == uVar13" identifier == identifier) && (parenthesized_expression "(uVar10 < uVar7)" ( (binary_expression "uVar10 < uVar7" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        return CONCAT44(uVar13,uVar10);\n      }" { (return_statement "return CONCAT44(uVar13,uVar10);" return (call_expression "CONCAT44(uVar13,uVar10)" identifier (argument_list "(uVar13,uVar10)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_002fddc8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c3cec);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c3cec)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" identifier = (cast_expression "(int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" * (cast_expression "(int *)(pcVar19 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3538)" ( (binary_expression "pcVar19 + 0x1c3538" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;" statement_identifier : (expression_statement "pcVar20 = pcVar20 + -0x24d0;" (assignment_expression "pcVar20 = pcVar20 + -0x24d0" identifier = (binary_expression "pcVar20 + -0x24d0" identifier + number_literal)) ;)) (expression_statement "FUN_002fdb30();" (call_expression "FUN_002fdb30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }" if (parenthesized_expression "(piStack_44 != (int *)0x0)" ( (binary_expression "piStack_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_44 = 0;\n  }" { (expression_statement "*piStack_44 = 0;" (assignment_expression "*piStack_44 = 0" (pointer_expression "*piStack_44" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = (**(code **)(*piVar5 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar5 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar5 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" ( (pointer_expression "**(code **)(*piVar5 + 0xc)" * (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }" if (parenthesized_expression "(unaff_s1 != (undefined1 *)0x0)" ( (binary_expression "unaff_s1 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *unaff_s1 = 1;\n  }" { (expression_statement "*unaff_s1 = 1;" (assignment_expression "*unaff_s1 = 1" (pointer_expression "*unaff_s1" * identifier) = number_literal) ;) })) (if_statement "if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" if (parenthesized_expression "((unaff_s0 != '\0') && (*piStack_44 == 0))" ( (binary_expression "(unaff_s0 != '\0') && (*piStack_44 == 0)" (parenthesized_expression "(unaff_s0 != '\0')" ( (binary_expression "unaff_s0 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_44 == 0)" ( (binary_expression "*piStack_44 == 0" (pointer_expression "*piStack_44" * identifier) == number_literal) ))) )) (compound_statement "{\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" { (while_statement "while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" while (parenthesized_expression "(uVar16 = (undefined1)in_a3, iStack_48 == 0)" ( (comma_expression "uVar16 = (undefined1)in_a3, iStack_48 == 0" (assignment_expression "uVar16 = (undefined1)in_a3" identifier = (cast_expression "(undefined1)in_a3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) , (binary_expression "iStack_48 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" { (expression_statement "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);" (assignment_expression "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" identifier = (call_expression "(**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" * (cast_expression "(code **)(pcVar20 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1c3b68)" ( (binary_expression "pcVar20 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" ( (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x79d0" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" * (cast_expression "(int *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x7f18" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" * (cast_expression "(int *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" if (parenthesized_expression "(*(int *)(iStack_48 + 0x20) < 0)" ( (binary_expression "*(int *)(iStack_48 + 0x20) < 0" (pointer_expression "*(int *)(iStack_48 + 0x20)" * (cast_expression "(int *)(iStack_48 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 0x20)" ( (binary_expression "iStack_48 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" { (expression_statement "lVar1 = *(longlong *)(iStack_48 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_48 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_48 + 8)" * (cast_expression "(longlong *)(iStack_48 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 8)" ( (binary_expression "iStack_48 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_44 = iStack_48;" (assignment_expression "*piStack_44 = iStack_48" (pointer_expression "*piStack_44" * identifier) = identifier) ;) (return_statement "return uVar21 + lVar1;" return (binary_expression "uVar21 + lVar1" identifier + identifier) ;) })) (expression_statement "pLVar14 = (Layout *)&DAT_000000c5;" (assignment_expression "pLVar14 = (Layout *)&DAT_000000c5" identifier = (cast_expression "(Layout *)&DAT_000000c5" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c5" & identifier))) ;) (expression_statement "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" identifier = (binary_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" (cast_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(pcVar20 + 0x1c3a54)" * (cast_expression "(undefined4 *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) ))))) + (char_literal "'\b'" ' escape_sequence '))) ;) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" identifier = (cast_expression "(Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" ( (binary_expression "*(int *)(pcVar20 + 0x1c33b4) + 0x3574" (pointer_expression "*(int *)(pcVar20 + 0x1c33b4)" * (cast_expression "(int *)(pcVar20 + 0x1c33b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c33b4)" ( (binary_expression "pcVar20 + 0x1c33b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar20 + 0x1c3b68))();" (call_expression "(**(code **)(pcVar20 + 0x1c3b68))()" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" * (cast_expression "(code **)(pcVar20 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1c3b68)" ( (binary_expression "pcVar20 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (ERROR "uVar21 = gold::" (assignment_expression "uVar21 = gold" identifier = identifier) : :) (labeled_statement "Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" identifier (argument_list "(pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" ( identifier , identifier , (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier) , (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) , (cast_expression "(ulonglong)in_stack_fffffeec" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(ulonglong *)0x0" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STT *)0x0" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STV *)0x0" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return uVar21;" return identifier ;) })) (return_statement "return uVar21;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\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/* WARNING: Enum "STT": Some values do not have unique names */\n/* DWARF original prototype: uint64_t abi_pagesize(Target * this) */\n\nuint64_t __thiscall gold::Target::abi_pagesize(Target *this)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  char *pcVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar13;\n  uint uVar14;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  char unaff_s0;\n  char *unaff_s1;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  longlong lVar19;\n  char acStack_88 [12];\n  int iStack_7c;\n  undefined4 *puStack_78;\n  undefined4 *puStack_74;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar13 = (undefined4 *)&DAT_0000005c;\n  puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0);\n  if (iVar2 == 0) {\n    iVar10 = *(int *)(puVar16 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);\n    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar10 = *(int *)(puVar16 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar15 = (undefined4 *)puVar13[7];\n  if (puVar15 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);\n    *puVar15 = uVar4;\n  }\n  if ((uint *)puVar13[9] != (uint *)0x0) {\n    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar13[10] != (uint *)0x0) {\n    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  if ((byte *)puVar13[0xb] != (byte *)0x0) {\n    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar17 = *(code **)(puVar16 + 0x1c3ecc);\n  iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8;\n  (*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar10 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n    if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar17 + 0x1c3cec);\n  this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8);\n  (*pcVar18)();\nLAB_002fdebc:\n  pcVar18 = pcVar18 + -0x24d0;\n  abi_pagesize(this_00);\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  acStack_88[0] = '\x01';\n  pcVar8 = acStack_88;\n  iStack_7c = iVar2;\n  puStack_78 = puVar13;\n  puStack_74 = puVar15;\n  iVar2 = (*this_00->_vptr_Target[3])();\n  lVar19 = CONCAT44(iVar2,pcVar8);\n  if (unaff_s1 == (char *)0x0) {\n    uVar4 = 0x9c;\n    if (acStack_88[0] == '\0') goto LAB_002fdfb8;\n  }\n  else {\n    *unaff_s1 = acStack_88[0];\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }\n    if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }\n    lVar1 = *(longlong *)(iStack_48 + 8);\n    *piStack_44 = iStack_48;\n    return lVar19 + lVar1;\n  }\n  return CONCAT44(iVar2,pcVar8);\n}\n\n" comment comment comment comment comment comment comment comment comment (function_definition "uint64_t __thiscall gold::Target::abi_pagesize(Target *this)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  char *pcVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar13;\n  uint uVar14;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  char unaff_s0;\n  char *unaff_s1;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  longlong lVar19;\n  char acStack_88 [12];\n  int iStack_7c;\n  undefined4 *puStack_78;\n  undefined4 *puStack_74;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar13 = (undefined4 *)&DAT_0000005c;\n  puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0);\n  if (iVar2 == 0) {\n    iVar10 = *(int *)(puVar16 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);\n    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar10 = *(int *)(puVar16 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar15 = (undefined4 *)puVar13[7];\n  if (puVar15 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);\n    *puVar15 = uVar4;\n  }\n  if ((uint *)puVar13[9] != (uint *)0x0) {\n    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar13[10] != (uint *)0x0) {\n    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  if ((byte *)puVar13[0xb] != (byte *)0x0) {\n    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar17 = *(code **)(puVar16 + 0x1c3ecc);\n  iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8;\n  (*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar10 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n    if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar17 + 0x1c3cec);\n  this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8);\n  (*pcVar18)();\nLAB_002fdebc:\n  pcVar18 = pcVar18 + -0x24d0;\n  abi_pagesize(this_00);\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  acStack_88[0] = '\x01';\n  pcVar8 = acStack_88;\n  iStack_7c = iVar2;\n  puStack_78 = puVar13;\n  puStack_74 = puVar15;\n  iVar2 = (*this_00->_vptr_Target[3])();\n  lVar19 = CONCAT44(iVar2,pcVar8);\n  if (unaff_s1 == (char *)0x0) {\n    uVar4 = 0x9c;\n    if (acStack_88[0] == '\0') goto LAB_002fdfb8;\n  }\n  else {\n    *unaff_s1 = acStack_88[0];\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }\n    if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }\n    lVar1 = *(longlong *)(iStack_48 + 8);\n    *piStack_44 = iStack_48;\n    return lVar19 + lVar1;\n  }\n  return CONCAT44(iVar2,pcVar8);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Target::" identifier : : identifier : :) (function_declarator "abi_pagesize(Target *this)" identifier (parameter_list "(Target *this)" ( (parameter_declaration "Target *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  char *pcVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar13;\n  uint uVar14;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  char unaff_s0;\n  char *unaff_s1;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  longlong lVar19;\n  char acStack_88 [12];\n  int iStack_7c;\n  undefined4 *puStack_78;\n  undefined4 *puStack_74;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar13 = (undefined4 *)&DAT_0000005c;\n  puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0);\n  if (iVar2 == 0) {\n    iVar10 = *(int *)(puVar16 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);\n    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar10 = *(int *)(puVar16 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar15 = (undefined4 *)puVar13[7];\n  if (puVar15 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);\n    *puVar15 = uVar4;\n  }\n  if ((uint *)puVar13[9] != (uint *)0x0) {\n    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar13[10] != (uint *)0x0) {\n    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  if ((byte *)puVar13[0xb] != (byte *)0x0) {\n    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar17 = *(code **)(puVar16 + 0x1c3ecc);\n  iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8;\n  (*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar10 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n    if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar17 + 0x1c3cec);\n  this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8);\n  (*pcVar18)();\nLAB_002fdebc:\n  pcVar18 = pcVar18 + -0x24d0;\n  abi_pagesize(this_00);\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  acStack_88[0] = '\x01';\n  pcVar8 = acStack_88;\n  iStack_7c = iVar2;\n  puStack_78 = puVar13;\n  puStack_74 = puVar15;\n  iVar2 = (*this_00->_vptr_Target[3])();\n  lVar19 = CONCAT44(iVar2,pcVar8);\n  if (unaff_s1 == (char *)0x0) {\n    uVar4 = 0x9c;\n    if (acStack_88[0] == '\0') goto LAB_002fdfb8;\n  }\n  else {\n    *unaff_s1 = acStack_88[0];\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }\n    if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }\n    lVar1 = *(longlong *)(iStack_48 + 8);\n    *piStack_44 = iStack_48;\n    return lVar19 + lVar1;\n  }\n  return CONCAT44(iVar2,pcVar8);\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Target *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Expression *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Symbol_table *symtab;" type_identifier (pointer_declarator "*symtab" * identifier) ;) (declaration "Layout *layout;" type_identifier (pointer_declarator "*layout" * identifier) ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined1 check_assertions;" type_identifier identifier ;) (declaration "char unaff_s0;" primitive_type identifier ;) (declaration "char *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "char acStack_88 [12];" primitive_type (array_declarator "acStack_88 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "undefined4 *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "undefined4 *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int *piStack_44;" primitive_type (pointer_declarator "*piStack_44" * identifier) ;) (expression_statement "puVar13 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar13 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;" (assignment_expression "puVar9 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal)) ;) (expression_statement "puVar16 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar16 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" (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 "(puVar9,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" identifier + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0);" (assignment_expression "iVar2 = (**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0)" identifier = (call_expression "(**(code **)(puVar16 + 0x1c42dc))(*puVar13,*(undefined4 *)(puVar9 + 4),0)" (parenthesized_expression "(**(code **)(puVar16 + 0x1c42dc))" ( (pointer_expression "**(code **)(puVar16 + 0x1c42dc)" * (pointer_expression "*(code **)(puVar16 + 0x1c42dc)" * (cast_expression "(code **)(puVar16 + 0x1c42dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c42dc)" ( (binary_expression "puVar16 + 0x1c42dc" identifier + number_literal) ))))) )) (argument_list "(*puVar13,*(undefined4 *)(puVar9 + 4),0)" ( (pointer_expression "*puVar13" * identifier) , (pointer_expression "*(undefined4 *)(puVar9 + 4)" * (cast_expression "(undefined4 *)(puVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar10 = *(int *)(puVar16 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);\n    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = *(int *)(puVar16 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);\n    (**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));\n    return 0;\n  }" { (expression_statement "iVar10 = *(int *)(puVar16 + 0x1c3db8);" (assignment_expression "iVar10 = *(int *)(puVar16 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar16 + 0x1c3db8)" * (cast_expression "(int *)(puVar16 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3db8)" ( (binary_expression "puVar16 + 0x1c3db8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002fdc84:\n    uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);" statement_identifier : (expression_statement "uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc);" (assignment_expression "uVar4 = (**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc)" identifier = (call_expression "(**(code **)(puVar16 + 0x1c80cc))(iVar10 + 0x79fc)" (parenthesized_expression "(**(code **)(puVar16 + 0x1c80cc))" ( (pointer_expression "**(code **)(puVar16 + 0x1c80cc)" * (pointer_expression "*(code **)(puVar16 + 0x1c80cc)" * (cast_expression "(code **)(puVar16 + 0x1c80cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c80cc)" ( (binary_expression "puVar16 + 0x1c80cc" identifier + number_literal) ))))) )) (argument_list "(iVar10 + 0x79fc)" ( (binary_expression "iVar10 + 0x79fc" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4));" (call_expression "(**(code **)(puVar16 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar9 + 4))" (parenthesized_expression "(**(code **)(puVar16 + 0x1c3ec8))" ( (pointer_expression "**(code **)(puVar16 + 0x1c3ec8)" * (pointer_expression "*(code **)(puVar16 + 0x1c3ec8)" * (cast_expression "(code **)(puVar16 + 0x1c3ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c3ec8)" ( (binary_expression "puVar16 + 0x1c3ec8" identifier + number_literal) ))))) )) (argument_list "(uVar4,*(undefined4 *)(puVar9 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(puVar9 + 4)" * (cast_expression "(undefined4 *)(puVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000" identifier = (binary_expression "*(uint *)(iVar2 + 0x28) & 0xe000" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" if (parenthesized_expression "((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0)" ( (binary_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(iVar2 + 0x28) << 0x1d" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) )) (compound_statement "{\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar6 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar6 = *(int *)(iVar2 + 0xc) != 0" identifier = (binary_expression "*(int *)(iVar2 + 0xc) != 0" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) != number_literal)) ;) }) (else_clause "else {\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" else (compound_statement "{\n      bVar6 = (**(code **)(puVar16 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" { (expression_statement "bVar6 = (**(code **)(puVar16 + 0x1c4168))();" (assignment_expression "bVar6 = (**(code **)(puVar16 + 0x1c4168))()" identifier = (call_expression "(**(code **)(puVar16 + 0x1c4168))()" (parenthesized_expression "(**(code **)(puVar16 + 0x1c4168))" ( (pointer_expression "**(code **)(puVar16 + 0x1c4168)" * (pointer_expression "*(code **)(puVar16 + 0x1c4168)" * (cast_expression "(code **)(puVar16 + 0x1c4168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c4168)" ( (binary_expression "puVar16 + 0x1c4168" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar6 = bVar6 ^ 1;" (assignment_expression "bVar6 = bVar6 ^ 1" identifier = (binary_expression "bVar6 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar6 = uVar3 != 0x8000;\n  }" else (compound_statement "{\n    bVar6 = uVar3 != 0x8000;\n  }" { (expression_statement "bVar6 = uVar3 != 0x8000;" (assignment_expression "bVar6 = uVar3 != 0x8000" identifier = (binary_expression "uVar3 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar10 = *(int *)(puVar16 + 0x1c3db8);" (assignment_expression "iVar10 = *(int *)(puVar16 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar16 + 0x1c3db8)" * (cast_expression "(int *)(puVar16 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3db8)" ( (binary_expression "puVar16 + 0x1c3db8" identifier + number_literal) ))))) ;) (if_statement "if (bVar6 == 0) goto LAB_002fdc84;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002fdc84;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined4 *)puVar13[7];" (assignment_expression "puVar15 = (undefined4 *)puVar13[7]" identifier = (cast_expression "(undefined4 *)puVar13[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);\n    *puVar15 = uVar4;\n  }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);\n    *puVar15 = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2);" (assignment_expression "uVar4 = (**(code **)(puVar16 + 0x1c6da0))(iVar2)" identifier = (call_expression "(**(code **)(puVar16 + 0x1c6da0))(iVar2)" (parenthesized_expression "(**(code **)(puVar16 + 0x1c6da0))" ( (pointer_expression "**(code **)(puVar16 + 0x1c6da0)" * (pointer_expression "*(code **)(puVar16 + 0x1c6da0)" * (cast_expression "(code **)(puVar16 + 0x1c6da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c6da0)" ( (binary_expression "puVar16 + 0x1c6da0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar15 = uVar4;" (assignment_expression "*puVar15 = uVar4" (pointer_expression "*puVar15" * identifier) = identifier) ;) })) (if_statement "if ((uint *)puVar13[9] != (uint *)0x0) {\n    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "((uint *)puVar13[9] != (uint *)0x0)" ( (binary_expression "(uint *)puVar13[9] != (uint *)0x0" (cast_expression "(uint *)puVar13[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[9]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" { (expression_statement "*(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;" (assignment_expression "*(uint *)puVar13[9] = *(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)puVar13[9]" * (cast_expression "(uint *)puVar13[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[9]" identifier [ number_literal ]))) = (binary_expression "*(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) })) (if_statement "if ((uint *)puVar13[10] != (uint *)0x0) {\n    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" if (parenthesized_expression "((uint *)puVar13[10] != (uint *)0x0)" ( (binary_expression "(uint *)puVar13[10] != (uint *)0x0" (cast_expression "(uint *)puVar13[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[10]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" { (expression_statement "*(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;" (assignment_expression "*(uint *)puVar13[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (pointer_expression "*(uint *)puVar13[10]" * (cast_expression "(uint *)puVar13[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[10]" identifier [ number_literal ]))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 8)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 8" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (expression_statement "piVar5 = *(int **)(puVar16 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar16 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar16 + 0x1c3e50)" * (cast_expression "(int **)(puVar16 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c3e50)" ( (binary_expression "puVar16 + 0x1c3e50" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar13[0xb] != (byte *)0x0) {\n    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  }" if (parenthesized_expression "((byte *)puVar13[0xb] != (byte *)0x0)" ( (binary_expression "(byte *)puVar13[0xb] != (byte *)0x0" (cast_expression "(byte *)puVar13[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar16 + 0x1c3e50);\n  }" { (expression_statement "*(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);" (assignment_expression "*(byte *)puVar13[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (pointer_expression "*(byte *)puVar13[0xb]" * (cast_expression "(byte *)puVar13[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[0xb]" identifier [ number_literal ]))) = (call_expression "(byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" ( (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 10)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 10" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "piVar5 = *(int **)(puVar16 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar16 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar16 + 0x1c3e50)" * (cast_expression "(int **)(puVar16 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c3e50)" ( (binary_expression "puVar16 + 0x1c3e50" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);\n  }" if (parenthesized_expression "(*(int *)(*piVar5 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar5 + 0xc) != 0" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);\n  }" { (expression_statement "iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);" (assignment_expression "iVar10 = **(int **)(*(int *)(*piVar5 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar5 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar5 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar5 + 0xc) + 4" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar10 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar10 == 0x20)" ( (binary_expression "iVar10 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }" { (return_statement "return (uint64_t)*(uint *)(iVar2 + 0x30);" return (cast_expression "(uint64_t)*(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint64_t" primitive_type) ) (pointer_expression "*(uint *)(iVar2 + 0x30)" * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar10 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar10 == 0x40)" ( (binary_expression "iVar10 == 0x40" identifier == number_literal) )) (compound_statement "{\n      return *(uint64_t *)(iVar2 + 0x30);\n    }" { (return_statement "return *(uint64_t *)(iVar2 + 0x30);" return (pointer_expression "*(uint64_t *)(iVar2 + 0x30)" * (cast_expression "(uint64_t *)(iVar2 + 0x30)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) )))) ;) })) (expression_statement "(**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00);" (call_expression "(**(code **)(puVar16 + 0x1c3ecc))\n              (*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00)" (parenthesized_expression "(**(code **)(puVar16 + 0x1c3ecc))" ( (pointer_expression "**(code **)(puVar16 + 0x1c3ecc)" * (pointer_expression "*(code **)(puVar16 + 0x1c3ecc)" * (cast_expression "(code **)(puVar16 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c3ecc)" ( (binary_expression "puVar16 + 0x1c3ecc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar16 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar16 + 0x1c3db8) + 0x7f00)" ( (binary_expression "*(int *)(puVar16 + 0x1c3db8) + 0x79d0" (pointer_expression "*(int *)(puVar16 + 0x1c3db8)" * (cast_expression "(int *)(puVar16 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3db8)" ( (binary_expression "puVar16 + 0x1c3db8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar16 + 0x1c3db8) + 0x7f00" (pointer_expression "*(int *)(puVar16 + 0x1c3db8)" * (cast_expression "(int *)(puVar16 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3db8)" ( (binary_expression "puVar16 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar17 = *(code **)(puVar16 + 0x1c3ecc);" (assignment_expression "pcVar17 = *(code **)(puVar16 + 0x1c3ecc)" identifier = (pointer_expression "*(code **)(puVar16 + 0x1c3ecc)" * (cast_expression "(code **)(puVar16 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x1c3ecc)" ( (binary_expression "puVar16 + 0x1c3ecc" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8;" (assignment_expression "iVar10 = *(int *)(puVar16 + 0x1c3718) + -0x9b8" identifier = (binary_expression "*(int *)(puVar16 + 0x1c3718) + -0x9b8" (pointer_expression "*(int *)(puVar16 + 0x1c3718)" * (cast_expression "(int *)(puVar16 + 0x1c3718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3718)" ( (binary_expression "puVar16 + 0x1c3718" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8);" (call_expression "(*pcVar17)(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(iVar10,0x69,*(int *)(puVar16 + 0x1c3db8) + 0x7ef8)" ( identifier , number_literal , (binary_expression "*(int *)(puVar16 + 0x1c3db8) + 0x7ef8" (pointer_expression "*(int *)(puVar16 + 0x1c3db8)" * (cast_expression "(int *)(puVar16 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c3db8)" ( (binary_expression "puVar16 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar10 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n    if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 4) == 0)" ( (binary_expression "*(int *)(iVar10 + 4) == 0" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n    if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);\n  }" { (expression_statement "this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);" (assignment_expression "this_00 = *(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" * (cast_expression "(Target **)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" ( (type_descriptor "Target **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar17 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar17 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar17 + 0x1c3c70)" * (cast_expression "(int **)(pcVar17 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3c70)" ( (binary_expression "pcVar17 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar17 + 0x1c3bd8);" (assignment_expression "iVar10 = *(int *)(pcVar17 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar17 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar17 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3bd8)" ( (binary_expression "pcVar17 + 0x1c3bd8" identifier + number_literal) ))))) ;) (if_statement "if (this_00 != (Target *)0x0) {\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" if (parenthesized_expression "(this_00 != (Target *)0x0)" ( (binary_expression "this_00 != (Target *)0x0" identifier != (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n      pcVar18 = *(code **)(pcVar17 + 0x1c7158);\n      if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" { (expression_statement "iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);" (assignment_expression "iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar17 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar17 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar17 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar17 + 0x1c3c70)" * (cast_expression "(int **)(pcVar17 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3c70)" ( (binary_expression "pcVar17 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar18 = *(code **)(pcVar17 + 0x1c7158);" (assignment_expression "pcVar18 = *(code **)(pcVar17 + 0x1c7158)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x1c7158)" * (cast_expression "(code **)(pcVar17 + 0x1c7158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c7158)" ( (binary_expression "pcVar17 + 0x1c7158" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 0) {\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = *(uint *)(iVar10 + 0x5228);\n        uVar7 = *(uint *)(iVar10 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" { (expression_statement "uVar3 = *(uint *)(iVar10 + 0x5228);" (assignment_expression "uVar3 = *(uint *)(iVar10 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar10 + 0x5228)" * (cast_expression "(uint *)(iVar10 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x5228)" ( (binary_expression "iVar10 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar10 + 0x522c);" (assignment_expression "uVar7 = *(uint *)(iVar10 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar10 + 0x522c)" * (cast_expression "(uint *)(iVar10 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x522c)" ( (binary_expression "iVar10 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n          return this_00->pti_->abi_pagesize;\n        }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n          return this_00->pti_->abi_pagesize;\n        }" { (return_statement "return this_00->pti_->abi_pagesize;" return (field_expression "this_00->pti_->abi_pagesize" (field_expression "this_00->pti_" identifier -> field_identifier) -> field_identifier) ;) })) (labeled_statement "LAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);" statement_identifier : (return_statement "return CONCAT44(uVar3,uVar7);" return (call_expression "CONCAT44(uVar3,uVar7)" identifier (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_002fdebc;" goto statement_identifier ;) })) (labeled_statement "LAB_002fde70:\n    (**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);" statement_identifier : (expression_statement "(**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8);" (call_expression "(**(code **)(pcVar17 + 0x1c3cec))(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8)" (parenthesized_expression "(**(code **)(pcVar17 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar17 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar17 + 0x1c3cec)" * (cast_expression "(code **)(pcVar17 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3cec)" ( (binary_expression "pcVar17 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar17 + 0x1c3538) + -0x9b8,0x69,iVar10 + 0x7ef8)" ( (binary_expression "*(int *)(pcVar17 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar17 + 0x1c3538)" * (cast_expression "(int *)(pcVar17 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3538)" ( (binary_expression "pcVar17 + 0x1c3538" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar10 + 0x7ef8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002fde88:\n    (**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);" statement_identifier : (expression_statement "(**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0);" (call_expression "(**(code **)(pcVar17 + 0x1c3cec))\n              (*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0)" (parenthesized_expression "(**(code **)(pcVar17 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar17 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar17 + 0x1c3cec)" * (cast_expression "(code **)(pcVar17 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3cec)" ( (binary_expression "pcVar17 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0)" ( (binary_expression "*(int *)(pcVar17 + 0x1c3bd8) + 0x79d0" (pointer_expression "*(int *)(pcVar17 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar17 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3bd8)" ( (binary_expression "pcVar17 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar17 + 0x1c3bd8) + 0x7ee0" (pointer_expression "*(int *)(pcVar17 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar17 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3bd8)" ( (binary_expression "pcVar17 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;\n    iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);\n    if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);\n    if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }\n  }" { (if_statement "if (*(int *)(iVar10 + 4) != 1) goto LAB_002fde88;" if (parenthesized_expression "(*(int *)(iVar10 + 4) != 1)" ( (binary_expression "*(int *)(iVar10 + 4) != 1" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_002fde88;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc);" (assignment_expression "iVar10 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar17 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar17 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar17 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar17 + 0x1c3c70)" * (cast_expression "(int **)(pcVar17 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3c70)" ( (binary_expression "pcVar17 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar10 = *(int *)(pcVar17 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" { (expression_statement "iVar10 = *(int *)(pcVar17 + 0x1c3bd8);" (assignment_expression "iVar10 = *(int *)(pcVar17 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar17 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar17 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3bd8)" ( (binary_expression "pcVar17 + 0x1c3bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002fde70;" goto statement_identifier ;) })) (expression_statement "iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8);" (assignment_expression "iVar11 = *(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar17 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar17 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar17 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar17 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar17 + 0x1c3c70)" * (cast_expression "(int **)(pcVar17 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3c70)" ( (binary_expression "pcVar17 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) {\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(iVar11 + 0x4e80);\n      uVar7 = *(uint *)(iVar11 + 0x4e84);\n      uVar14 = *(uint *)(iVar11 + 0x5228);\n      uVar12 = *(uint *)(iVar11 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }\n      if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }\n      goto LAB_002fddc8;\n    }" { (expression_statement "uVar3 = *(uint *)(iVar11 + 0x4e80);" (assignment_expression "uVar3 = *(uint *)(iVar11 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x4e80)" * (cast_expression "(uint *)(iVar11 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x4e80)" ( (binary_expression "iVar11 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar11 + 0x4e84);" (assignment_expression "uVar7 = *(uint *)(iVar11 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x4e84)" * (cast_expression "(uint *)(iVar11 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x4e84)" ( (binary_expression "iVar11 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(iVar11 + 0x5228);" (assignment_expression "uVar14 = *(uint *)(iVar11 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x5228)" * (cast_expression "(uint *)(iVar11 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x5228)" ( (binary_expression "iVar11 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(iVar11 + 0x522c);" (assignment_expression "uVar12 = *(uint *)(iVar11 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x522c)" * (cast_expression "(uint *)(iVar11 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x522c)" ( (binary_expression "iVar11 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar2 = *(int *)(iVar10 + 4);\n        if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }" { (expression_statement "iVar2 = *(int *)(iVar10 + 4);" (assignment_expression "iVar2 = *(int *)(iVar10 + 4)" identifier = (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 == 0 && uVar12 == 0) {\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" if (parenthesized_expression "(uVar14 == 0 && uVar12 == 0)" ( (binary_expression "uVar14 == 0 && uVar12 == 0" (binary_expression "uVar14 == 0" identifier == number_literal) && (binary_expression "uVar12 == 0" identifier == number_literal)) )) (compound_statement "{\n          uVar14 = *(uint *)(iVar2 + 0x20);\n          uVar12 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar14 = *(uint *)(iVar2 + 0x20);" (assignment_expression "uVar14 = *(uint *)(iVar2 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x20)" * (cast_expression "(uint *)(iVar2 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(iVar2 + 0x24);" (assignment_expression "uVar12 = *(uint *)(iVar2 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }" else (if_statement "if (uVar14 == 0 && uVar12 == 0) {\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar14 == 0 && uVar12 == 0)" ( (binary_expression "uVar14 == 0 && uVar12 == 0" (binary_expression "uVar14 == 0" identifier == number_literal) && (binary_expression "uVar12 == 0" identifier == number_literal)) )) (compound_statement "{\n        uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);\n        uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);\n      }" { (expression_statement "uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20);" (assignment_expression "uVar14 = *(uint *)(*(int *)(iVar10 + 4) + 0x20)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar10 + 4) + 0x20)" * (cast_expression "(uint *)(*(int *)(iVar10 + 4) + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 4) + 0x20)" ( (binary_expression "*(int *)(iVar10 + 4) + 0x20" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24);" (assignment_expression "uVar12 = *(uint *)(*(int *)(iVar10 + 4) + 0x24)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar10 + 4) + 0x24)" * (cast_expression "(uint *)(*(int *)(iVar10 + 4) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 4) + 0x24)" ( (binary_expression "*(int *)(iVar10 + 4) + 0x24" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) })))) (if_statement "if ((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))) {\n        return CONCAT44(uVar14,uVar12);\n      }" if (parenthesized_expression "((uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7))))" ( (binary_expression "(uVar14 < uVar3) || ((uVar3 == uVar14 && (uVar12 < uVar7)))" (parenthesized_expression "(uVar14 < uVar3)" ( (binary_expression "uVar14 < uVar3" identifier < identifier) )) || (parenthesized_expression "((uVar3 == uVar14 && (uVar12 < uVar7)))" ( (parenthesized_expression "(uVar3 == uVar14 && (uVar12 < uVar7))" ( (binary_expression "uVar3 == uVar14 && (uVar12 < uVar7)" (binary_expression "uVar3 == uVar14" identifier == identifier) && (parenthesized_expression "(uVar12 < uVar7)" ( (binary_expression "uVar12 < uVar7" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        return CONCAT44(uVar14,uVar12);\n      }" { (return_statement "return CONCAT44(uVar14,uVar12);" return (call_expression "CONCAT44(uVar14,uVar12)" identifier (argument_list "(uVar14,uVar12)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_002fddc8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar18 = *(code **)(pcVar17 + 0x1c3cec);" (assignment_expression "pcVar18 = *(code **)(pcVar17 + 0x1c3cec)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x1c3cec)" * (cast_expression "(code **)(pcVar17 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x1c3cec)" ( (binary_expression "pcVar17 + 0x1c3cec" identifier + number_literal) ))))) ;) (expression_statement "this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8);" (assignment_expression "this_00 = (Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8)" identifier = (cast_expression "(Target *)(*(int *)(pcVar17 + 0x1c3538) + -0x9b8)" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar17 + 0x1c3538) + -0x9b8)" ( (binary_expression "*(int *)(pcVar17 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar17 + 0x1c3538)" * (cast_expression "(int *)(pcVar17 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x1c3538)" ( (binary_expression "pcVar17 + 0x1c3538" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_002fdebc:\n  pcVar18 = pcVar18 + -0x24d0;" statement_identifier : (expression_statement "pcVar18 = pcVar18 + -0x24d0;" (assignment_expression "pcVar18 = pcVar18 + -0x24d0" identifier = (binary_expression "pcVar18 + -0x24d0" identifier + number_literal)) ;)) (expression_statement "abi_pagesize(this_00);" (call_expression "abi_pagesize(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (if_statement "if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }" if (parenthesized_expression "(piStack_44 != (int *)0x0)" ( (binary_expression "piStack_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_44 = 0;\n  }" { (expression_statement "*piStack_44 = 0;" (assignment_expression "*piStack_44 = 0" (pointer_expression "*piStack_44" * identifier) = number_literal) ;) })) (expression_statement "acStack_88[0] = '\x01';" (assignment_expression "acStack_88[0] = '\x01'" (subscript_expression "acStack_88[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pcVar8 = acStack_88;" (assignment_expression "pcVar8 = acStack_88" identifier = identifier) ;) (expression_statement "iStack_7c = iVar2;" (assignment_expression "iStack_7c = iVar2" identifier = identifier) ;) (expression_statement "puStack_78 = puVar13;" (assignment_expression "puStack_78 = puVar13" identifier = identifier) ;) (expression_statement "puStack_74 = puVar15;" (assignment_expression "puStack_74 = puVar15" identifier = identifier) ;) (expression_statement "iVar2 = (*this_00->_vptr_Target[3])();" (assignment_expression "iVar2 = (*this_00->_vptr_Target[3])()" identifier = (call_expression "(*this_00->_vptr_Target[3])()" (parenthesized_expression "(*this_00->_vptr_Target[3])" ( (pointer_expression "*this_00->_vptr_Target[3]" * (subscript_expression "this_00->_vptr_Target[3]" (field_expression "this_00->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "lVar19 = CONCAT44(iVar2,pcVar8);" (assignment_expression "lVar19 = CONCAT44(iVar2,pcVar8)" identifier = (call_expression "CONCAT44(iVar2,pcVar8)" identifier (argument_list "(iVar2,pcVar8)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s1 == (char *)0x0) {\n    uVar4 = 0x9c;\n    if (acStack_88[0] == '\0') goto LAB_002fdfb8;\n  }\n  else {\n    *unaff_s1 = acStack_88[0];\n  }" if (parenthesized_expression "(unaff_s1 == (char *)0x0)" ( (binary_expression "unaff_s1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = 0x9c;\n    if (acStack_88[0] == '\0') goto LAB_002fdfb8;\n  }" { (expression_statement "uVar4 = 0x9c;" (assignment_expression "uVar4 = 0x9c" identifier = number_literal) ;) (if_statement "if (acStack_88[0] == '\0') goto LAB_002fdfb8;" if (parenthesized_expression "(acStack_88[0] == '\0')" ( (binary_expression "acStack_88[0] == '\0'" (subscript_expression "acStack_88[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_002fdfb8;" goto statement_identifier ;)) }) (else_clause "else {\n    *unaff_s1 = acStack_88[0];\n  }" else (compound_statement "{\n    *unaff_s1 = acStack_88[0];\n  }" { (expression_statement "*unaff_s1 = acStack_88[0];" (assignment_expression "*unaff_s1 = acStack_88[0]" (pointer_expression "*unaff_s1" * identifier) = (subscript_expression "acStack_88[0]" identifier [ number_literal ])) ;) }))) (if_statement "if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }\n    if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }\n    lVar1 = *(longlong *)(iStack_48 + 8);\n    *piStack_44 = iStack_48;\n    return lVar19 + lVar1;\n  }" if (parenthesized_expression "((unaff_s0 != '\0') && (*piStack_44 == 0))" ( (binary_expression "(unaff_s0 != '\0') && (*piStack_44 == 0)" (parenthesized_expression "(unaff_s0 != '\0')" ( (binary_expression "unaff_s0 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_44 == 0)" ( (binary_expression "*piStack_44 == 0" (pointer_expression "*piStack_44" * identifier) == number_literal) ))) )) (compound_statement "{\n    while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }\n    if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }\n    lVar1 = *(longlong *)(iStack_48 + 8);\n    *piStack_44 = iStack_48;\n    return lVar19 + lVar1;\n  }" { (while_statement "while( true ) {\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      check_assertions = (undefined1)in_a3;\n      uVar4 = 0xa2;\n      if (iStack_48 != 0) break;\nLAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);\n    }" { (expression_statement "check_assertions = (undefined1)in_a3;" (assignment_expression "check_assertions = (undefined1)in_a3" identifier = (cast_expression "(undefined1)in_a3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = 0xa2;" (assignment_expression "uVar4 = 0xa2" identifier = number_literal) ;) (if_statement "if (iStack_48 != 0) break;" if (parenthesized_expression "(iStack_48 != 0)" ( (binary_expression "iStack_48 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002fdfb8:\n      lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);" statement_identifier : (expression_statement "lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18);" (assignment_expression "lVar19 = (**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18)" identifier = (call_expression "(**(code **)(pcVar18 + 0x1c3b68))\n                         (*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18)" (parenthesized_expression "(**(code **)(pcVar18 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar18 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar18 + 0x1c3b68)" * (cast_expression "(code **)(pcVar18 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x1c3b68)" ( (binary_expression "pcVar18 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x1c3a54) + 0x79d0,uVar4,\n                          *(int *)(pcVar18 + 0x1c3a54) + 0x7f18)" ( (binary_expression "*(int *)(pcVar18 + 0x1c3a54) + 0x79d0" (pointer_expression "*(int *)(pcVar18 + 0x1c3a54)" * (cast_expression "(int *)(pcVar18 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x1c3a54)" ( (binary_expression "pcVar18 + 0x1c3a54" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar18 + 0x1c3a54) + 0x7f18" (pointer_expression "*(int *)(pcVar18 + 0x1c3a54)" * (cast_expression "(int *)(pcVar18 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x1c3a54)" ( (binary_expression "pcVar18 + 0x1c3a54" identifier + number_literal) )))) + number_literal) )))) ;)) })) (if_statement "if (-1 < *(int *)(iStack_48 + 0x20)) {\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }" if (parenthesized_expression "(-1 < *(int *)(iStack_48 + 0x20))" ( (binary_expression "-1 < *(int *)(iStack_48 + 0x20)" number_literal < (pointer_expression "*(int *)(iStack_48 + 0x20)" * (cast_expression "(int *)(iStack_48 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 0x20)" ( (binary_expression "iStack_48 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n      symtab = (Symbol_table *)&DAT_000000c5;\n      layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);\n      this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);\n      (**(code **)(pcVar18 + 0x1c3b68))();\n                    /* WARNING: Subroutine does not return */\n      Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);\n    }" { (expression_statement "symtab = (Symbol_table *)&DAT_000000c5;" (assignment_expression "symtab = (Symbol_table *)&DAT_000000c5" identifier = (cast_expression "(Symbol_table *)&DAT_000000c5" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c5" & identifier))) ;) (expression_statement "layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08);" (assignment_expression "layout = (Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08)" identifier = (cast_expression "(Layout *)(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x1c3a54) + 0x7f08)" ( (binary_expression "*(int *)(pcVar18 + 0x1c3a54) + 0x7f08" (pointer_expression "*(int *)(pcVar18 + 0x1c3a54)" * (cast_expression "(int *)(pcVar18 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x1c3a54)" ( (binary_expression "pcVar18 + 0x1c3a54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574);" (assignment_expression "this_01 = (Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574)" identifier = (cast_expression "(Expression *)(*(int *)(pcVar18 + 0x1c33b4) + 0x3574)" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x1c33b4) + 0x3574)" ( (binary_expression "*(int *)(pcVar18 + 0x1c33b4) + 0x3574" (pointer_expression "*(int *)(pcVar18 + 0x1c33b4)" * (cast_expression "(int *)(pcVar18 + 0x1c33b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x1c33b4)" ( (binary_expression "pcVar18 + 0x1c33b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar18 + 0x1c3b68))();" (call_expression "(**(code **)(pcVar18 + 0x1c3b68))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar18 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar18 + 0x1c3b68)" * (cast_expression "(code **)(pcVar18 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x1c3b68)" ( (binary_expression "pcVar18 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) comment (labeled_statement "Expression::eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0);" (call_expression "eval_maybe_dot\n                (this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0)" identifier (argument_list "(this_01,symtab,layout,(bool)check_assertions,false,0,(Output_section *)0x0,\n                 (Output_section **)0x0,(uint64_t *)0x0,(STT *)0x0,(STV *)0x0,(uchar *)0x0,false,\n                 (bool *)0x0)" ( identifier , identifier , identifier , (cast_expression "(bool)check_assertions" ( (type_descriptor "bool" primitive_type) ) identifier) , false , number_literal , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STT *)0x0" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STV *)0x0" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) })) (expression_statement "lVar1 = *(longlong *)(iStack_48 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_48 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_48 + 8)" * (cast_expression "(longlong *)(iStack_48 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 8)" ( (binary_expression "iStack_48 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_44 = iStack_48;" (assignment_expression "*piStack_44 = iStack_48" (pointer_expression "*piStack_44" * identifier) = identifier) ;) (return_statement "return lVar19 + lVar1;" return (binary_expression "lVar19 + lVar1" identifier + identifier) ;) })) (return_statement "return CONCAT44(iVar2,pcVar8);" return (call_expression "CONCAT44(iVar2,pcVar8)" identifier (argument_list "(iVar2,pcVar8)" ( identifier , identifier ))) ;) })))
(translation_unit "ulonglong FUN_002fdb30(void)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}\n\n" (function_definition "ulonglong FUN_002fdb30(void)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" type_identifier (function_declarator "FUN_002fdb30(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "Symbol_table *pSVar11;" type_identifier (pointer_declarator "*pSVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "Layout *pLVar14;" type_identifier (pointer_declarator "*pLVar14" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "char unaff_s0;" primitive_type identifier ;) (declaration "undefined1 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "ulonglong uVar21;" type_identifier identifier ;) (declaration "uint in_stack_fffffeec;" type_identifier identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int *piStack_44;" primitive_type (pointer_declarator "*piStack_44" * identifier) ;) (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;" (assignment_expression "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" (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 "(puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" identifier + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c42dc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c42dc)" * (pointer_expression "*(code **)(puVar18 + 0x1c42dc)" * (cast_expression "(code **)(puVar18 + 0x1c42dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c42dc)" ( (binary_expression "puVar18 + 0x1c42dc" identifier + number_literal) ))))) )) (argument_list "(*puVar12,*(undefined4 *)(puVar8 + 4),0)" ( (pointer_expression "*puVar12" * identifier) , (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" { (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" statement_identifier : (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c80cc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c80cc)" * (pointer_expression "*(code **)(puVar18 + 0x1c80cc)" * (cast_expression "(code **)(puVar18 + 0x1c80cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c80cc)" ( (binary_expression "puVar18 + 0x1c80cc" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x79fc)" ( (binary_expression "iVar9 + 0x79fc" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));" (call_expression "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4))" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ec8))" ( (pointer_expression "**(code **)(puVar18 + 0x1c3ec8)" * (pointer_expression "*(code **)(puVar18 + 0x1c3ec8)" * (cast_expression "(code **)(puVar18 + 0x1c3ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ec8)" ( (binary_expression "puVar18 + 0x1c3ec8" identifier + number_literal) ))))) )) (argument_list "(uVar4,*(undefined4 *)(puVar8 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000" identifier = (binary_expression "*(uint *)(iVar2 + 0x28) & 0xe000" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" if (parenthesized_expression "((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0)" ( (binary_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(iVar2 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(iVar2 + 0x28) << 0x1d" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) )) (compound_statement "{\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar6 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar6 = *(int *)(iVar2 + 0xc) != 0" identifier = (binary_expression "*(int *)(iVar2 + 0xc) != 0" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) != number_literal)) ;) }) (else_clause "else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" else (compound_statement "{\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" { (expression_statement "bVar6 = (**(code **)(puVar18 + 0x1c4168))();" (assignment_expression "bVar6 = (**(code **)(puVar18 + 0x1c4168))()" identifier = (call_expression "(**(code **)(puVar18 + 0x1c4168))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1c4168))" ( (pointer_expression "**(code **)(puVar18 + 0x1c4168)" * (pointer_expression "*(code **)(puVar18 + 0x1c4168)" * (cast_expression "(code **)(puVar18 + 0x1c4168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c4168)" ( (binary_expression "puVar18 + 0x1c4168" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar6 = bVar6 ^ 1;" (assignment_expression "bVar6 = bVar6 ^ 1" identifier = (binary_expression "bVar6 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar6 = uVar3 != 0x8000;\n  }" else (compound_statement "{\n    bVar6 = uVar3 != 0x8000;\n  }" { (expression_statement "bVar6 = uVar3 != 0x8000;" (assignment_expression "bVar6 = uVar3 != 0x8000" identifier = (binary_expression "uVar3 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" identifier = (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) ))))) ;) (if_statement "if (bVar6 == 0) goto LAB_002fdc84;" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002fdc84;" goto statement_identifier ;)) (expression_statement "puVar17 = (undefined4 *)puVar12[7];" (assignment_expression "puVar17 = (undefined4 *)puVar12[7]" identifier = (cast_expression "(undefined4 *)puVar12[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" if (parenthesized_expression "(puVar17 != (undefined4 *)0x0)" ( (binary_expression "puVar17 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2)" identifier = (call_expression "(**(code **)(puVar18 + 0x1c6da0))(iVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c6da0))" ( (pointer_expression "**(code **)(puVar18 + 0x1c6da0)" * (pointer_expression "*(code **)(puVar18 + 0x1c6da0)" * (cast_expression "(code **)(puVar18 + 0x1c6da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c6da0)" ( (binary_expression "puVar18 + 0x1c6da0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar17 = uVar4;" (assignment_expression "*puVar17 = uVar4" (pointer_expression "*puVar17" * identifier) = identifier) ;) })) (if_statement "if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "((uint *)puVar12[9] != (uint *)0x0)" ( (binary_expression "(uint *)puVar12[9] != (uint *)0x0" (cast_expression "(uint *)puVar12[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[9]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" { (expression_statement "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;" (assignment_expression "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)puVar12[9]" * (cast_expression "(uint *)puVar12[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[9]" identifier [ number_literal ]))) = (binary_expression "*(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) })) (if_statement "if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" if (parenthesized_expression "((uint *)puVar12[10] != (uint *)0x0)" ( (binary_expression "(uint *)puVar12[10] != (uint *)0x0" (cast_expression "(uint *)puVar12[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[10]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" { (expression_statement "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;" (assignment_expression "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (pointer_expression "*(uint *)puVar12[10]" * (cast_expression "(uint *)puVar12[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[10]" identifier [ number_literal ]))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 8)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 8" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" * (cast_expression "(int **)(puVar18 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3e50)" ( (binary_expression "puVar18 + 0x1c3e50" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" if (parenthesized_expression "((byte *)puVar12[0xb] != (byte *)0x0)" ( (binary_expression "(byte *)puVar12[0xb] != (byte *)0x0" (cast_expression "(byte *)puVar12[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[0xb]" identifier [ number_literal ])) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" { (expression_statement "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);" (assignment_expression "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (pointer_expression "*(byte *)puVar12[0xb]" * (cast_expression "(byte *)puVar12[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[0xb]" identifier [ number_literal ]))) = (call_expression "(byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" ( (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x28) << 10)" ( (binary_expression "*(int *)(iVar2 + 0x28) << 10" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" identifier = (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" * (cast_expression "(int **)(puVar18 + 0x1c3e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3e50)" ( (binary_expression "puVar18 + 0x1c3e50" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" if (parenthesized_expression "(*(int *)(*piVar5 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar5 + 0xc) != 0" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" { (expression_statement "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);" (assignment_expression "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar5 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar5 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar5 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar5 + 0xc) + 4" (pointer_expression "*(int *)(*piVar5 + 0xc)" * (cast_expression "(int *)(*piVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" { (return_statement "return (ulonglong)*(uint *)(iVar2 + 0x30);" return (binary_expression "(ulonglong)*(uint *)(iVar2 + 0x30)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar2 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) )))) ;) })) (if_statement "if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar9 == 0x40)" ( (binary_expression "iVar9 == 0x40" identifier == number_literal) )) (compound_statement "{\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" { (return_statement "return *(ulonglong *)(iVar2 + 0x30);" return (pointer_expression "*(ulonglong *)(iVar2 + 0x30)" * (cast_expression "(ulonglong *)(iVar2 + 0x30)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) )))) ;) })) (expression_statement "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);" (call_expression "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ecc))" ( (pointer_expression "**(code **)(puVar18 + 0x1c3ecc)" * (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" * (cast_expression "(code **)(puVar18 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ecc)" ( (binary_expression "puVar18 + 0x1c3ecc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" ( (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x79d0" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7f00" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar19 = *(code **)(puVar18 + 0x1c3ecc);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1c3ecc)" identifier = (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" * (cast_expression "(code **)(puVar18 + 0x1c3ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1c3ecc)" ( (binary_expression "puVar18 + 0x1c3ecc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;" (assignment_expression "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8" identifier = (binary_expression "*(int *)(puVar18 + 0x1c3718) + -0x9b8" (pointer_expression "*(int *)(puVar18 + 0x1c3718)" * (cast_expression "(int *)(puVar18 + 0x1c3718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3718)" ( (binary_expression "puVar18 + 0x1c3718" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);" (call_expression "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" ( identifier , number_literal , (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7ef8" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" * (cast_expression "(int *)(puVar18 + 0x1c3db8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1c3db8)" ( (binary_expression "puVar18 + 0x1c3db8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 4) == 0)" ( (binary_expression "*(int *)(iVar2 + 4) == 0" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }" { (expression_statement "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" * (cast_expression "(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" { (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c7158);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c7158)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1c7158)" * (cast_expression "(code **)(pcVar19 + 0x1c7158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c7158)" ( (binary_expression "pcVar19 + 0x1c7158" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x5228)" * (cast_expression "(uint *)(iVar2 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x5228)" ( (binary_expression "iVar2 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x522c)" * (cast_expression "(uint *)(iVar2 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x522c)" ( (binary_expression "iVar2 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" { (return_statement "return *(ulonglong *)(piVar5[1] + 0x20);" return (pointer_expression "*(ulonglong *)(piVar5[1] + 0x20)" * (cast_expression "(ulonglong *)(piVar5[1] + 0x20)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[1] + 0x20)" ( (binary_expression "piVar5[1] + 0x20" (subscript_expression "piVar5[1]" identifier [ number_literal ]) + number_literal) )))) ;) })) (labeled_statement "LAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);" statement_identifier : (return_statement "return CONCAT44(uVar3,uVar7);" return (call_expression "CONCAT44(uVar3,uVar7)" identifier (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_002fdebc;" goto statement_identifier ;) })) (labeled_statement "LAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" statement_identifier : (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" * (cast_expression "(int *)(pcVar19 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3538)" ( (binary_expression "pcVar19 + 0x1c3538" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x7ef8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" statement_identifier : (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" * (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;" if (parenthesized_expression "(*(int *)(iVar2 + 4) != 1)" ( (binary_expression "*(int *)(iVar2 + 4) != 1" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_002fde88;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" * (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3bd8)" ( (binary_expression "pcVar19 + 0x1c3bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002fde70;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" * (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" * (cast_expression "(int **)(pcVar19 + 0x1c3c70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3c70)" ( (binary_expression "pcVar19 + 0x1c3c70" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" { (expression_statement "uVar3 = *(uint *)(iVar9 + 0x4e80);" (assignment_expression "uVar3 = *(uint *)(iVar9 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x4e80)" * (cast_expression "(uint *)(iVar9 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4e80)" ( (binary_expression "iVar9 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar9 + 0x4e84);" (assignment_expression "uVar7 = *(uint *)(iVar9 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x4e84)" * (cast_expression "(uint *)(iVar9 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4e84)" ( (binary_expression "iVar9 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar9 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x5228)" * (cast_expression "(uint *)(iVar9 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5228)" ( (binary_expression "iVar9 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar9 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar9 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x522c)" * (cast_expression "(uint *)(iVar9 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x522c)" ( (binary_expression "iVar9 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" ( (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" identifier == number_literal) && (binary_expression "uVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }" { (expression_statement "iVar2 = *(int *)(iVar2 + 4);" (assignment_expression "iVar2 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" if (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" ( (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar13 = *(uint *)(iVar2 + 0x20);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x20)" * (cast_expression "(uint *)(iVar2 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x24);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x24)" * (cast_expression "(uint *)(iVar2 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x28)" * (cast_expression "(uint *)(iVar2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x2c)" * (cast_expression "(uint *)(iVar2 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" else (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" ( (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" { (expression_statement "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);" (assignment_expression "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x20)" * (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x20)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x20" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);" (assignment_expression "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x24)" * (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x24)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x24" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) })))) (if_statement "if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" if (parenthesized_expression "((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7))))" ( (binary_expression "(uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))" (parenthesized_expression "(uVar13 < uVar3)" ( (binary_expression "uVar13 < uVar3" identifier < identifier) )) || (parenthesized_expression "((uVar3 == uVar13 && (uVar10 < uVar7)))" ( (parenthesized_expression "(uVar3 == uVar13 && (uVar10 < uVar7))" ( (binary_expression "uVar3 == uVar13 && (uVar10 < uVar7)" (binary_expression "uVar3 == uVar13" identifier == identifier) && (parenthesized_expression "(uVar10 < uVar7)" ( (binary_expression "uVar10 < uVar7" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        return CONCAT44(uVar13,uVar10);\n      }" { (return_statement "return CONCAT44(uVar13,uVar10);" return (call_expression "CONCAT44(uVar13,uVar10)" identifier (argument_list "(uVar13,uVar10)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_002fddc8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c3cec);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c3cec)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" * (cast_expression "(code **)(pcVar19 + 0x1c3cec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1c3cec)" ( (binary_expression "pcVar19 + 0x1c3cec" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" identifier = (cast_expression "(int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" ( (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" * (cast_expression "(int *)(pcVar19 + 0x1c3538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1c3538)" ( (binary_expression "pcVar19 + 0x1c3538" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;" statement_identifier : (expression_statement "pcVar20 = pcVar20 + -0x24d0;" (assignment_expression "pcVar20 = pcVar20 + -0x24d0" identifier = (binary_expression "pcVar20 + -0x24d0" identifier + number_literal)) ;)) (expression_statement "FUN_002fdb30();" (call_expression "FUN_002fdb30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }" if (parenthesized_expression "(piStack_44 != (int *)0x0)" ( (binary_expression "piStack_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_44 = 0;\n  }" { (expression_statement "*piStack_44 = 0;" (assignment_expression "*piStack_44 = 0" (pointer_expression "*piStack_44" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = (**(code **)(*piVar5 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar5 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar5 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" ( (pointer_expression "**(code **)(*piVar5 + 0xc)" * (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }" if (parenthesized_expression "(unaff_s1 != (undefined1 *)0x0)" ( (binary_expression "unaff_s1 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *unaff_s1 = 1;\n  }" { (expression_statement "*unaff_s1 = 1;" (assignment_expression "*unaff_s1 = 1" (pointer_expression "*unaff_s1" * identifier) = number_literal) ;) })) (if_statement "if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" if (parenthesized_expression "((unaff_s0 != '\0') && (*piStack_44 == 0))" ( (binary_expression "(unaff_s0 != '\0') && (*piStack_44 == 0)" (parenthesized_expression "(unaff_s0 != '\0')" ( (binary_expression "unaff_s0 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_44 == 0)" ( (binary_expression "*piStack_44 == 0" (pointer_expression "*piStack_44" * identifier) == number_literal) ))) )) (compound_statement "{\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" { (while_statement "while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" while (parenthesized_expression "(uVar16 = (undefined1)in_a3, iStack_48 == 0)" ( (comma_expression "uVar16 = (undefined1)in_a3, iStack_48 == 0" (assignment_expression "uVar16 = (undefined1)in_a3" identifier = (cast_expression "(undefined1)in_a3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) , (binary_expression "iStack_48 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" { (expression_statement "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);" (assignment_expression "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" identifier = (call_expression "(**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" * (cast_expression "(code **)(pcVar20 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1c3b68)" ( (binary_expression "pcVar20 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" ( (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x79d0" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" * (cast_expression "(int *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x7f18" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" * (cast_expression "(int *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" if (parenthesized_expression "(*(int *)(iStack_48 + 0x20) < 0)" ( (binary_expression "*(int *)(iStack_48 + 0x20) < 0" (pointer_expression "*(int *)(iStack_48 + 0x20)" * (cast_expression "(int *)(iStack_48 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 0x20)" ( (binary_expression "iStack_48 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" { (expression_statement "lVar1 = *(longlong *)(iStack_48 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_48 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_48 + 8)" * (cast_expression "(longlong *)(iStack_48 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_48 + 8)" ( (binary_expression "iStack_48 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_44 = iStack_48;" (assignment_expression "*piStack_44 = iStack_48" (pointer_expression "*piStack_44" * identifier) = identifier) ;) (return_statement "return uVar21 + lVar1;" return (binary_expression "uVar21 + lVar1" identifier + identifier) ;) })) (expression_statement "pLVar14 = (Layout *)&DAT_000000c5;" (assignment_expression "pLVar14 = (Layout *)&DAT_000000c5" identifier = (cast_expression "(Layout *)&DAT_000000c5" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c5" & identifier))) ;) (expression_statement "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" identifier = (binary_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" (cast_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(pcVar20 + 0x1c3a54)" * (cast_expression "(undefined4 *)(pcVar20 + 0x1c3a54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c3a54)" ( (binary_expression "pcVar20 + 0x1c3a54" identifier + number_literal) ))))) + (char_literal "'\b'" ' escape_sequence '))) ;) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" identifier = (cast_expression "(Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" ( (binary_expression "*(int *)(pcVar20 + 0x1c33b4) + 0x3574" (pointer_expression "*(int *)(pcVar20 + 0x1c33b4)" * (cast_expression "(int *)(pcVar20 + 0x1c33b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1c33b4)" ( (binary_expression "pcVar20 + 0x1c33b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar20 + 0x1c3b68))();" (call_expression "(**(code **)(pcVar20 + 0x1c3b68))()" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" ( (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" * (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" * (cast_expression "(code **)(pcVar20 + 0x1c3b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1c3b68)" ( (binary_expression "pcVar20 + 0x1c3b68" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (ERROR "uVar21 = gold::" (assignment_expression "uVar21 = gold" identifier = identifier) : :) (labeled_statement "Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" identifier (argument_list "(pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" ( identifier , identifier , (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier) , (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) , (cast_expression "(ulonglong)in_stack_fffffeec" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(ulonglong *)0x0" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STT *)0x0" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STV *)0x0" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return uVar21;" return identifier ;) })) (return_statement "return uVar21;" 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (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 = (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 ( (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 IDENT + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return 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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression 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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (binary_expression (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) )))) << LIT) ))) >> 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (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) )))) << LIT) ))) >> 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) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( IDENT )) * (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 { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) })) (labeled_statement statement_identifier : (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ))))) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) ;) })) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (binary_expression IDENT + IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , BOOL , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;)) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "ulonglong FUN_002fdb30(void)\n\n{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" (type_identifier "ulonglong") (function_declarator "FUN_002fdb30(void)" (identifier "FUN_002fdb30") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  byte bVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined4 in_a3;\n  undefined1 uVar16;\n  char unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  ulonglong uVar21;\n  uint in_stack_fffffeec;\n  int iStack_48;\n  int *piStack_44;\n  \n  puVar12 = (undefined4 *)&DAT_0000005c;\n  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);\n  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }\n  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }\n  iVar9 = *(int *)(puVar18 + 0x1c3db8);\n  if (bVar6 == 0) goto LAB_002fdc84;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }\n  if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }\n  if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }\n  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);\n  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;\n  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);\n  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);\n  (*pcVar20)();\nLAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;\n  FUN_002fdb30();\n  if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }\n  uVar21 = (**(code **)(*piVar5 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }\n  return uVar21;\n}" ({ "{") (declaration "longlong lVar1;" (type_identifier "longlong") (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "Symbol_table *pSVar11;" (type_identifier "Symbol_table") (pointer_declarator "*pSVar11" (* "*") (identifier "pSVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "Layout *pLVar14;" (type_identifier "Layout") (pointer_declarator "*pLVar14" (* "*") (identifier "pLVar14")) (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (declaration "undefined4 in_a3;" (type_identifier "undefined4") (identifier "in_a3") (; ";")) (declaration "undefined1 uVar16;" (type_identifier "undefined1") (identifier "uVar16") (; ";")) (declaration "char unaff_s0;" (primitive_type "char") (identifier "unaff_s0") (; ";")) (declaration "undefined1 *unaff_s1;" (type_identifier "undefined1") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "ulonglong uVar21;" (type_identifier "ulonglong") (identifier "uVar21") (; ";")) (declaration "uint in_stack_fffffeec;" (type_identifier "uint") (identifier "in_stack_fffffeec") (; ";")) (declaration "int iStack_48;" (primitive_type "int") (identifier "iStack_48") (; ";")) (declaration "int *piStack_44;" (primitive_type "int") (pointer_declarator "*piStack_44" (* "*") (identifier "piStack_44")) (; ";")) (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)&DAT_0000005c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000005c" (& "&") (identifier "DAT_0000005c")))) (; ";")) (expression_statement "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;" (assignment_expression "puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "puVar8") (= "=") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8"))) (; ";")) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar18") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" (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 "(puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10)" (( "(") (identifier "puVar8") (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7f10")) () ")"))) (; ";")) (expression_statement "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);" (assignment_expression "iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c42dc))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c42dc)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c42dc)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c42dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c42dc)" (( "(") (binary_expression "puVar18 + 0x1c42dc" (identifier "puVar18") (+ "+") (number_literal "0x1c42dc")) () ")"))))) () ")")) (argument_list "(*puVar12,*(undefined4 *)(puVar8 + 4),0)" (( "(") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (, ",") (pointer_expression "*(undefined4 *)(puVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = *(int *)(puVar18 + 0x1c3db8);\nLAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);\n    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));\n    return 0;\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3db8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3db8)" (( "(") (binary_expression "puVar18 + 0x1c3db8" (identifier "puVar18") (+ "+") (number_literal "0x1c3db8")) () ")"))))) (; ";")) (labeled_statement "LAB_002fdc84:\n    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" (statement_identifier "LAB_002fdc84") (: ":") (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c80cc))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c80cc)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c80cc)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c80cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c80cc)" (( "(") (binary_expression "puVar18 + 0x1c80cc" (identifier "puVar18") (+ "+") (number_literal "0x1c80cc")) () ")"))))) () ")")) (argument_list "(iVar9 + 0x79fc)" (( "(") (binary_expression "iVar9 + 0x79fc" (identifier "iVar9") (+ "+") (number_literal "0x79fc")) () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));" (call_expression "(**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4))" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ec8))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c3ec8)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c3ec8)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c3ec8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c3ec8)" (( "(") (binary_expression "puVar18 + 0x1c3ec8" (identifier "puVar18") (+ "+") (number_literal "0x1c3ec8")) () ")"))))) () ")")) (argument_list "(uVar4,*(undefined4 *)(puVar8 + 4))" (( "(") (identifier "uVar4") (, ",") (pointer_expression "*(undefined4 *)(puVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(iVar2 + 0x28) & 0xe000" (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000"))) (; ";")) (if_statement "if (uVar3 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }\n  else {\n    bVar6 = uVar3 != 0x8000;\n  }" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }\n  }" ({ "{") (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" (if "if") (parenthesized_expression "((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0)" (( "(") (binary_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(iVar2 + 0x28) << 0x1d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(uint *)(iVar2 + 0x28) << 0x1d)" (( "(") (binary_expression "*(uint *)(iVar2 + 0x28) << 0x1d" (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x1d")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      bVar6 = *(int *)(iVar2 + 0xc) != 0;\n    }" ({ "{") (expression_statement "bVar6 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar6 = *(int *)(iVar2 + 0xc) != 0" (identifier "bVar6") (= "=") (binary_expression "*(int *)(iVar2 + 0xc) != 0" (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" (else "else") (compound_statement "{\n      bVar6 = (**(code **)(puVar18 + 0x1c4168))();\n      bVar6 = bVar6 ^ 1;\n    }" ({ "{") (expression_statement "bVar6 = (**(code **)(puVar18 + 0x1c4168))();" (assignment_expression "bVar6 = (**(code **)(puVar18 + 0x1c4168))()" (identifier "bVar6") (= "=") (call_expression "(**(code **)(puVar18 + 0x1c4168))()" (parenthesized_expression "(**(code **)(puVar18 + 0x1c4168))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c4168)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c4168)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c4168)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c4168)" (( "(") (binary_expression "puVar18 + 0x1c4168" (identifier "puVar18") (+ "+") (number_literal "0x1c4168")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar6 = bVar6 ^ 1;" (assignment_expression "bVar6 = bVar6 ^ 1" (identifier "bVar6") (= "=") (binary_expression "bVar6 ^ 1" (identifier "bVar6") (^ "^") (number_literal "1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    bVar6 = uVar3 != 0x8000;\n  }" (else "else") (compound_statement "{\n    bVar6 = uVar3 != 0x8000;\n  }" ({ "{") (expression_statement "bVar6 = uVar3 != 0x8000;" (assignment_expression "bVar6 = uVar3 != 0x8000" (identifier "bVar6") (= "=") (binary_expression "uVar3 != 0x8000" (identifier "uVar3") (!= "!=") (number_literal "0x8000"))) (; ";")) (} "}")))) (expression_statement "iVar9 = *(int *)(puVar18 + 0x1c3db8);" (assignment_expression "iVar9 = *(int *)(puVar18 + 0x1c3db8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3db8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3db8)" (( "(") (binary_expression "puVar18 + 0x1c3db8" (identifier "puVar18") (+ "+") (number_literal "0x1c3db8")) () ")"))))) (; ";")) (if_statement "if (bVar6 == 0) goto LAB_002fdc84;" (if "if") (parenthesized_expression "(bVar6 == 0)" (( "(") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002fdc84;" (goto "goto") (statement_identifier "LAB_002fdc84") (; ";"))) (expression_statement "puVar17 = (undefined4 *)puVar12[7];" (assignment_expression "puVar17 = (undefined4 *)puVar12[7]" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)puVar12[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (puVar17 != (undefined4 *)0x0) {\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" (if "if") (parenthesized_expression "(puVar17 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar17 != (undefined4 *)0x0" (identifier "puVar17") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);\n    *puVar17 = uVar4;\n  }" ({ "{") (expression_statement "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);" (assignment_expression "uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(puVar18 + 0x1c6da0))(iVar2)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c6da0))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c6da0)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c6da0)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c6da0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c6da0)" (( "(") (binary_expression "puVar18 + 0x1c6da0" (identifier "puVar18") (+ "+") (number_literal "0x1c6da0")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "*puVar17 = uVar4;" (assignment_expression "*puVar17 = uVar4" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (if_statement "if ((uint *)puVar12[9] != (uint *)0x0) {\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" (if "if") (parenthesized_expression "((uint *)puVar12[9] != (uint *)0x0)" (( "(") (binary_expression "(uint *)puVar12[9] != (uint *)0x0" (cast_expression "(uint *)puVar12[9]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]"))) (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" ({ "{") (expression_statement "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;" (assignment_expression "*(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)puVar12[9]" (* "*") (cast_expression "(uint *)puVar12[9]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")))) (= "=") (binary_expression "*(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "0x1c"))) (; ";")) (} "}"))) (if_statement "if ((uint *)puVar12[10] != (uint *)0x0) {\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" (if "if") (parenthesized_expression "((uint *)puVar12[10] != (uint *)0x0)" (( "(") (binary_expression "(uint *)puVar12[10] != (uint *)0x0" (cast_expression "(uint *)puVar12[10]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]"))) (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" ({ "{") (expression_statement "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;" (assignment_expression "*(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (pointer_expression "*(uint *)puVar12[10]" (* "*") (cast_expression "(uint *)puVar12[10]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]")))) (= "=") (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar2 + 0x28) << 8)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) << 8" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x1e"))) (; ";")) (} "}"))) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" (* "*") (cast_expression "(int **)(puVar18 + 0x1c3e50)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c3e50)" (( "(") (binary_expression "puVar18 + 0x1c3e50" (identifier "puVar18") (+ "+") (number_literal "0x1c3e50")) () ")"))))) (; ";")) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" (if "if") (parenthesized_expression "((byte *)puVar12[0xb] != (byte *)0x0)" (( "(") (binary_expression "(byte *)puVar12[0xb] != (byte *)0x0" (cast_expression "(byte *)puVar12[0xb]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[0xb]" (identifier "puVar12") ([ "[") (number_literal "0xb") (] "]"))) (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar5 = *(int **)(puVar18 + 0x1c3e50);\n  }" ({ "{") (expression_statement "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);" (assignment_expression "*(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (pointer_expression "*(byte *)puVar12[0xb]" (* "*") (cast_expression "(byte *)puVar12[0xb]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[0xb]" (identifier "puVar12") ([ "[") (number_literal "0xb") (] "]")))) (= "=") (call_expression "(byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (( "(") (binary_expression "(uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a" (call_expression "(uint)(*(int *)(iVar2 + 0x28) << 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar2 + 0x28) << 10)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) << 10" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "10")) () ")"))) (>> ">>") (number_literal "0x1a")) () ")")))) (; ";")) (expression_statement "piVar5 = *(int **)(puVar18 + 0x1c3e50);" (assignment_expression "piVar5 = *(int **)(puVar18 + 0x1c3e50)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(puVar18 + 0x1c3e50)" (* "*") (cast_expression "(int **)(puVar18 + 0x1c3e50)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c3e50)" (( "(") (binary_expression "puVar18 + 0x1c3e50" (identifier "puVar18") (+ "+") (number_literal "0x1c3e50")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*piVar5 + 0xc) != 0) {\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" (if "if") (parenthesized_expression "(*(int *)(*piVar5 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(*piVar5 + 0xc) != 0" (pointer_expression "*(int *)(*piVar5 + 0xc)" (* "*") (cast_expression "(int *)(*piVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + 0xc)" (( "(") (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);\n    if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);\n  }" ({ "{") (expression_statement "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);" (assignment_expression "iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4)" (identifier "iVar9") (= "=") (pointer_expression "**(int **)(*(int *)(*piVar5 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(*piVar5 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*piVar5 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*piVar5 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(*piVar5 + 0xc) + 4" (pointer_expression "*(int *)(*piVar5 + 0xc)" (* "*") (cast_expression "(int *)(*piVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + 0xc)" (( "(") (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (iVar9 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" (if "if") (parenthesized_expression "(iVar9 == 0x20)" (( "(") (binary_expression "iVar9 == 0x20" (identifier "iVar9") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" ({ "{") (return_statement "return (ulonglong)*(uint *)(iVar2 + 0x30);" (return "return") (binary_expression "(ulonglong)*(uint *)(iVar2 + 0x30)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar2 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (} "}"))) (if_statement "if (iVar9 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" (if "if") (parenthesized_expression "(iVar9 == 0x40)" (( "(") (binary_expression "iVar9 == 0x40" (identifier "iVar9") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" ({ "{") (return_statement "return *(ulonglong *)(iVar2 + 0x30);" (return "return") (pointer_expression "*(ulonglong *)(iVar2 + 0x30)" (* "*") (cast_expression "(ulonglong *)(iVar2 + 0x30)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);" (call_expression "(**(code **)(puVar18 + 0x1c3ecc))\n              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" (parenthesized_expression "(**(code **)(puVar18 + 0x1c3ecc))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x1c3ecc)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c3ecc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c3ecc)" (( "(") (binary_expression "puVar18 + 0x1c3ecc" (identifier "puVar18") (+ "+") (number_literal "0x1c3ecc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00)" (( "(") (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x79d0" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3db8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3db8)" (( "(") (binary_expression "puVar18 + 0x1c3db8" (identifier "puVar18") (+ "+") (number_literal "0x1c3db8")) () ")")))) (+ "+") (number_literal "0x79d0")) (, ",") (number_literal "0xf9") (, ",") (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7f00" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3db8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3db8)" (( "(") (binary_expression "puVar18 + 0x1c3db8" (identifier "puVar18") (+ "+") (number_literal "0x1c3db8")) () ")")))) (+ "+") (number_literal "0x7f00")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar19 = *(code **)(puVar18 + 0x1c3ecc);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1c3ecc)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(puVar18 + 0x1c3ecc)" (* "*") (cast_expression "(code **)(puVar18 + 0x1c3ecc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1c3ecc)" (( "(") (binary_expression "puVar18 + 0x1c3ecc" (identifier "puVar18") (+ "+") (number_literal "0x1c3ecc")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;" (assignment_expression "iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar18 + 0x1c3718) + -0x9b8" (pointer_expression "*(int *)(puVar18 + 0x1c3718)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3718)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3718)" (( "(") (binary_expression "puVar18 + 0x1c3718" (identifier "puVar18") (+ "+") (number_literal "0x1c3718")) () ")")))) (+ "+") (number_literal "-0x9b8"))) (; ";")) (expression_statement "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);" (call_expression "(*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8)" (( "(") (identifier "iVar2") (, ",") (number_literal "0x69") (, ",") (binary_expression "*(int *)(puVar18 + 0x1c3db8) + 0x7ef8" (pointer_expression "*(int *)(puVar18 + 0x1c3db8)" (* "*") (cast_expression "(int *)(puVar18 + 0x1c3db8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1c3db8)" (( "(") (binary_expression "puVar18 + 0x1c3db8" (identifier "puVar18") (+ "+") (number_literal "0x1c3db8")) () ")")))) (+ "+") (number_literal "0x7ef8")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 4) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 4) == 0" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n    if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }\nLAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);\nLAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);\n  }" ({ "{") (expression_statement "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (* "*") (cast_expression "(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1c3c70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3c70)" (( "(") (binary_expression "pcVar19 + 0x1c3c70" (identifier "pcVar19") (+ "+") (number_literal "0x1c3c70")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3bd8)" (( "(") (binary_expression "pcVar19 + 0x1c3bd8" (identifier "pcVar19") (+ "+") (number_literal "0x1c3bd8")) () ")"))))) (; ";")) (if_statement "if (piVar5 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" (if "if") (parenthesized_expression "(piVar5 != (int *)0x0)" (( "(") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n      pcVar20 = *(code **)(pcVar19 + 0x1c7158);\n      if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }\n      goto LAB_002fdebc;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (* "*") (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" (( "(") (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1c3c70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3c70)" (( "(") (binary_expression "pcVar19 + 0x1c3c70" (identifier "pcVar19") (+ "+") (number_literal "0x1c3c70")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c7158);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c7158)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar19 + 0x1c7158)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1c7158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c7158)" (( "(") (binary_expression "pcVar19 + 0x1c7158" (identifier "pcVar19") (+ "+") (number_literal "0x1c7158")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = *(uint *)(iVar2 + 0x5228);\n        uVar7 = *(uint *)(iVar2 + 0x522c);\n        if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }\nLAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);\n      }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x5228)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x5228)" (* "*") (cast_expression "(uint *)(iVar2 + 0x5228)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x5228)" (( "(") (binary_expression "iVar2 + 0x5228" (identifier "iVar2") (+ "+") (number_literal "0x5228")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x522c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x522c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x522c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x522c)" (( "(") (binary_expression "iVar2 + 0x522c" (identifier "iVar2") (+ "+") (number_literal "0x522c")) () ")"))))) (; ";")) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" (if "if") (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" (( "(") (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          return *(ulonglong *)(piVar5[1] + 0x20);\n        }" ({ "{") (return_statement "return *(ulonglong *)(piVar5[1] + 0x20);" (return "return") (pointer_expression "*(ulonglong *)(piVar5[1] + 0x20)" (* "*") (cast_expression "(ulonglong *)(piVar5[1] + 0x20)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5[1] + 0x20)" (( "(") (binary_expression "piVar5[1] + 0x20" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_002fddc8:\n        return CONCAT44(uVar3,uVar7);" (statement_identifier "LAB_002fddc8") (: ":") (return_statement "return CONCAT44(uVar3,uVar7);" (return "return") (call_expression "CONCAT44(uVar3,uVar7)" (identifier "CONCAT44") (argument_list "(uVar3,uVar7)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar7") () ")"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_002fdebc;" (goto "goto") (statement_identifier "LAB_002fdebc") (; ";")) (} "}"))) (labeled_statement "LAB_002fde70:\n    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" (statement_identifier "LAB_002fde70") (: ":") (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1c3cec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3cec)" (( "(") (binary_expression "pcVar19 + 0x1c3cec" (identifier "pcVar19") (+ "+") (number_literal "0x1c3cec")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3538)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3538)" (( "(") (binary_expression "pcVar19 + 0x1c3538" (identifier "pcVar19") (+ "+") (number_literal "0x1c3538")) () ")")))) (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x7ef8" (identifier "iVar2") (+ "+") (number_literal "0x7ef8")) () ")"))) (; ";"))) (labeled_statement "LAB_002fde88:\n    (**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" (statement_identifier "LAB_002fde88") (: ":") (expression_statement "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);" (call_expression "(**(code **)(pcVar19 + 0x1c3cec))\n              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1c3cec))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1c3cec)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1c3cec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3cec)" (( "(") (binary_expression "pcVar19 + 0x1c3cec" (identifier "pcVar19") (+ "+") (number_literal "0x1c3cec")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3bd8)" (( "(") (binary_expression "pcVar19 + 0x1c3bd8" (identifier "pcVar19") (+ "+") (number_literal "0x1c3bd8")) () ")")))) (+ "+") (number_literal "0x79d0")) (, ",") (number_literal "0x44a") (, ",") (binary_expression "*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0" (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3bd8)" (( "(") (binary_expression "pcVar19 + 0x1c3bd8" (identifier "pcVar19") (+ "+") (number_literal "0x1c3bd8")) () ")")))) (+ "+") (number_literal "0x7ee0")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;\n    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }\n    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);\n    if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 4) != 1)" (( "(") (binary_expression "*(int *)(iVar2 + 4) != 1" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_002fde88;" (goto "goto") (statement_identifier "LAB_002fde88") (; ";"))) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 0xc" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1c3c70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3c70)" (( "(") (binary_expression "pcVar19 + 0x1c3c70" (identifier "pcVar19") (+ "+") (number_literal "0x1c3c70")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);\n      goto LAB_002fde70;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1c3bd8);" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1c3bd8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar19 + 0x1c3bd8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3bd8)" (( "(") (binary_expression "pcVar19 + 0x1c3bd8" (identifier "pcVar19") (+ "+") (number_literal "0x1c3bd8")) () ")"))))) (; ";")) (goto_statement "goto LAB_002fde70;" (goto "goto") (statement_identifier "LAB_002fde70") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);" (assignment_expression "iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (* "*") (cast_expression "(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar19 + 0x1c3c70) + 8)" (( "(") (binary_expression "**(int **)(pcVar19 + 0x1c3c70) + 8" (pointer_expression "**(int **)(pcVar19 + 0x1c3c70)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x1c3c70)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1c3c70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3c70)" (( "(") (binary_expression "pcVar19 + 0x1c3c70" (identifier "pcVar19") (+ "+") (number_literal "0x1c3c70")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = *(uint *)(iVar9 + 0x4e80);\n      uVar7 = *(uint *)(iVar9 + 0x4e84);\n      uVar13 = *(uint *)(iVar9 + 0x5228);\n      uVar10 = *(uint *)(iVar9 + 0x522c);\n      if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_002fddc8;\n    }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar9 + 0x4e80);" (assignment_expression "uVar3 = *(uint *)(iVar9 + 0x4e80)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x4e80)" (* "*") (cast_expression "(uint *)(iVar9 + 0x4e80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4e80)" (( "(") (binary_expression "iVar9 + 0x4e80" (identifier "iVar9") (+ "+") (number_literal "0x4e80")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar9 + 0x4e84);" (assignment_expression "uVar7 = *(uint *)(iVar9 + 0x4e84)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x4e84)" (* "*") (cast_expression "(uint *)(iVar9 + 0x4e84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4e84)" (( "(") (binary_expression "iVar9 + 0x4e84" (identifier "iVar9") (+ "+") (number_literal "0x4e84")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(iVar9 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 0x5228)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x5228)" (* "*") (cast_expression "(uint *)(iVar9 + 0x5228)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5228)" (( "(") (binary_expression "iVar9 + 0x5228" (identifier "iVar9") (+ "+") (number_literal "0x5228")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar9 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar9 + 0x522c)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x522c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x522c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x522c)" (( "(") (binary_expression "iVar9 + 0x522c" (identifier "iVar9") (+ "+") (number_literal "0x522c")) () ")"))))) (; ";")) (if_statement "if (uVar3 == 0 && uVar7 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" (if "if") (parenthesized_expression "(uVar3 == 0 && uVar7 == 0)" (( "(") (binary_expression "uVar3 == 0 && uVar7 == 0" (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(iVar2 + 4);" (assignment_expression "iVar2 = *(int *)(iVar2 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" (if "if") (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" (( "(") (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" ({ "{") (expression_statement "uVar13 = *(uint *)(iVar2 + 0x20);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x20)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x20)" (* "*") (cast_expression "(uint *)(iVar2 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x24);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x24)" (* "*") (cast_expression "(uint *)(iVar2 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" (else "else") (compound_statement "{\n          uVar3 = *(uint *)(iVar2 + 0x28);\n          uVar7 = *(uint *)(iVar2 + 0x2c);\n        }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x28)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x28)" (* "*") (cast_expression "(uint *)(iVar2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x2c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" (else "else") (if_statement "if (uVar13 == 0 && uVar10 == 0) {\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" (if "if") (parenthesized_expression "(uVar13 == 0 && uVar10 == 0)" (( "(") (binary_expression "uVar13 == 0 && uVar10 == 0" (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" ({ "{") (expression_statement "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);" (assignment_expression "uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x20)" (* "*") (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x20)" (( "(") (binary_expression "*(int *)(iVar2 + 4) + 0x20" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);" (assignment_expression "uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar2 + 4) + 0x24)" (* "*") (cast_expression "(uint *)(*(int *)(iVar2 + 4) + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x24)" (( "(") (binary_expression "*(int *)(iVar2 + 4) + 0x24" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" (if "if") (parenthesized_expression "((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7))))" (( "(") (binary_expression "(uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))" (parenthesized_expression "(uVar13 < uVar3)" (( "(") (binary_expression "uVar13 < uVar3" (identifier "uVar13") (< "<") (identifier "uVar3")) () ")")) (|| "||") (parenthesized_expression "((uVar3 == uVar13 && (uVar10 < uVar7)))" (( "(") (parenthesized_expression "(uVar3 == uVar13 && (uVar10 < uVar7))" (( "(") (binary_expression "uVar3 == uVar13 && (uVar10 < uVar7)" (binary_expression "uVar3 == uVar13" (identifier "uVar3") (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(uVar10 < uVar7)" (( "(") (binary_expression "uVar10 < uVar7" (identifier "uVar10") (< "<") (identifier "uVar7")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        return CONCAT44(uVar13,uVar10);\n      }" ({ "{") (return_statement "return CONCAT44(uVar13,uVar10);" (return "return") (call_expression "CONCAT44(uVar13,uVar10)" (identifier "CONCAT44") (argument_list "(uVar13,uVar10)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_002fddc8;" (goto "goto") (statement_identifier "LAB_002fddc8") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1c3cec);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1c3cec)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar19 + 0x1c3cec)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1c3cec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3cec)" (( "(") (binary_expression "pcVar19 + 0x1c3cec" (identifier "pcVar19") (+ "+") (number_literal "0x1c3cec")) () ")"))))) (; ";")) (expression_statement "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar19 + 0x1c3538) + -0x9b8)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1c3538) + -0x9b8" (pointer_expression "*(int *)(pcVar19 + 0x1c3538)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1c3538)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1c3538)" (( "(") (binary_expression "pcVar19 + 0x1c3538" (identifier "pcVar19") (+ "+") (number_literal "0x1c3538")) () ")")))) (+ "+") (number_literal "-0x9b8")) () ")")))) (; ";")) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_002fdebc:\n  pcVar20 = pcVar20 + -0x24d0;" (statement_identifier "LAB_002fdebc") (: ":") (expression_statement "pcVar20 = pcVar20 + -0x24d0;" (assignment_expression "pcVar20 = pcVar20 + -0x24d0" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + -0x24d0" (identifier "pcVar20") (+ "+") (number_literal "-0x24d0"))) (; ";"))) (expression_statement "FUN_002fdb30();" (call_expression "FUN_002fdb30()" (identifier "FUN_002fdb30") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (piStack_44 != (int *)0x0) {\n    *piStack_44 = 0;\n  }" (if "if") (parenthesized_expression "(piStack_44 != (int *)0x0)" (( "(") (binary_expression "piStack_44 != (int *)0x0" (identifier "piStack_44") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *piStack_44 = 0;\n  }" ({ "{") (expression_statement "*piStack_44 = 0;" (assignment_expression "*piStack_44 = 0" (pointer_expression "*piStack_44" (* "*") (identifier "piStack_44")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar21 = (**(code **)(*piVar5 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar5 + 0xc))()" (identifier "uVar21") (= "=") (call_expression "(**(code **)(*piVar5 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0xc)" (* "*") (cast_expression "(code **)(*piVar5 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0xc)" (( "(") (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }" (if "if") (parenthesized_expression "(unaff_s1 != (undefined1 *)0x0)" (( "(") (binary_expression "unaff_s1 != (undefined1 *)0x0" (identifier "unaff_s1") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *unaff_s1 = 1;\n  }" ({ "{") (expression_statement "*unaff_s1 = 1;" (assignment_expression "*unaff_s1 = 1" (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" (if "if") (parenthesized_expression "((unaff_s0 != '\0') && (*piStack_44 == 0))" (( "(") (binary_expression "(unaff_s0 != '\0') && (*piStack_44 == 0)" (parenthesized_expression "(unaff_s0 != '\0')" (( "(") (binary_expression "unaff_s0 != '\0'" (identifier "unaff_s0") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*piStack_44 == 0)" (( "(") (binary_expression "*piStack_44 == 0" (pointer_expression "*piStack_44" (* "*") (identifier "piStack_44")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }\n    if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);\n    (**(code **)(pcVar20 + 0x1c3b68))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);\n    return uVar21;\n  }" ({ "{") (while_statement "while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" (while "while") (parenthesized_expression "(uVar16 = (undefined1)in_a3, iStack_48 == 0)" (( "(") (comma_expression "uVar16 = (undefined1)in_a3, iStack_48 == 0" (assignment_expression "uVar16 = (undefined1)in_a3" (identifier "uVar16") (= "=") (cast_expression "(undefined1)in_a3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "in_a3"))) (, ",") (binary_expression "iStack_48 == 0" (identifier "iStack_48") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);\n    }" ({ "{") (expression_statement "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);" (assignment_expression "uVar21 = (**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(pcVar20 + 0x1c3b68))\n                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" (( "(") (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" (* "*") (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1c3b68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1c3b68)" (( "(") (binary_expression "pcVar20 + 0x1c3b68" (identifier "pcVar20") (+ "+") (number_literal "0x1c3b68")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,\n                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18)" (( "(") (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x79d0" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1c3a54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1c3a54)" (( "(") (binary_expression "pcVar20 + 0x1c3a54" (identifier "pcVar20") (+ "+") (number_literal "0x1c3a54")) () ")")))) (+ "+") (number_literal "0x79d0")) (, ",") (number_literal "0xa2") (, ",") (binary_expression "*(int *)(pcVar20 + 0x1c3a54) + 0x7f18" (pointer_expression "*(int *)(pcVar20 + 0x1c3a54)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1c3a54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1c3a54)" (( "(") (binary_expression "pcVar20 + 0x1c3a54" (identifier "pcVar20") (+ "+") (number_literal "0x1c3a54")) () ")")))) (+ "+") (number_literal "0x7f18")) () ")")))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iStack_48 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" (if "if") (parenthesized_expression "(*(int *)(iStack_48 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iStack_48 + 0x20) < 0" (pointer_expression "*(int *)(iStack_48 + 0x20)" (* "*") (cast_expression "(int *)(iStack_48 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_48 + 0x20)" (( "(") (binary_expression "iStack_48 + 0x20" (identifier "iStack_48") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_48 + 8);\n      *piStack_44 = iStack_48;\n      return uVar21 + lVar1;\n    }" ({ "{") (expression_statement "lVar1 = *(longlong *)(iStack_48 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_48 + 8)" (identifier "lVar1") (= "=") (pointer_expression "*(longlong *)(iStack_48 + 8)" (* "*") (cast_expression "(longlong *)(iStack_48 + 8)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_48 + 8)" (( "(") (binary_expression "iStack_48 + 8" (identifier "iStack_48") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*piStack_44 = iStack_48;" (assignment_expression "*piStack_44 = iStack_48" (pointer_expression "*piStack_44" (* "*") (identifier "piStack_44")) (= "=") (identifier "iStack_48")) (; ";")) (return_statement "return uVar21 + lVar1;" (return "return") (binary_expression "uVar21 + lVar1" (identifier "uVar21") (+ "+") (identifier "lVar1")) (; ";")) (} "}"))) (expression_statement "pLVar14 = (Layout *)&DAT_000000c5;" (assignment_expression "pLVar14 = (Layout *)&DAT_000000c5" (identifier "pLVar14") (= "=") (cast_expression "(Layout *)&DAT_000000c5" (( "(") (type_descriptor "Layout *" (type_identifier "Layout") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000000c5" (& "&") (identifier "DAT_000000c5")))) (; ";")) (expression_statement "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" (identifier "cVar15") (= "=") (binary_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b'" (cast_expression "(char)*(undefined4 *)(pcVar20 + 0x1c3a54)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined4 *)(pcVar20 + 0x1c3a54)" (* "*") (cast_expression "(undefined4 *)(pcVar20 + 0x1c3a54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1c3a54)" (( "(") (binary_expression "pcVar20 + 0x1c3a54" (identifier "pcVar20") (+ "+") (number_literal "0x1c3a54")) () ")"))))) (+ "+") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'")))) (; ";")) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" (identifier "pSVar11") (= "=") (cast_expression "(Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" (( "(") (type_descriptor "Symbol_table *" (type_identifier "Symbol_table") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar20 + 0x1c33b4) + 0x3574)" (( "(") (binary_expression "*(int *)(pcVar20 + 0x1c33b4) + 0x3574" (pointer_expression "*(int *)(pcVar20 + 0x1c33b4)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1c33b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1c33b4)" (( "(") (binary_expression "pcVar20 + 0x1c33b4" (identifier "pcVar20") (+ "+") (number_literal "0x1c33b4")) () ")")))) (+ "+") (number_literal "0x3574")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar20 + 0x1c3b68))();" (call_expression "(**(code **)(pcVar20 + 0x1c3b68))()" (parenthesized_expression "(**(code **)(pcVar20 + 0x1c3b68))" (( "(") (pointer_expression "**(code **)(pcVar20 + 0x1c3b68)" (* "*") (pointer_expression "*(code **)(pcVar20 + 0x1c3b68)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1c3b68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1c3b68)" (( "(") (binary_expression "pcVar20 + 0x1c3b68" (identifier "pcVar20") (+ "+") (number_literal "0x1c3b68")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (ERROR "uVar21 = gold::" (assignment_expression "uVar21 = gold" (identifier "uVar21") (= "=") (identifier "gold")) (: ":") (: ":")) (labeled_statement "Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" (statement_identifier "Expression") (: ":") (ERROR ":" (: ":")) (expression_statement "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" (identifier "eval_maybe_dot") (argument_list "(pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,\n                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,\n                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0)" (( "(") (identifier "pSVar11") (, ",") (identifier "pLVar14") (, ",") (cast_expression "(bool)cVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar15")) (, ",") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) (, ",") (cast_expression "(ulonglong)in_stack_fffffeec" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "in_stack_fffffeec")) (, ",") (cast_expression "(Output_section *)0x0" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(Output_section **)0x0" (( "(") (type_descriptor "Output_section **" (type_identifier "Output_section") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(ulonglong *)0x0" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(STT *)0x0" (( "(") (type_descriptor "STT *" (type_identifier "STT") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(STV *)0x0" (( "(") (type_descriptor "STV *" (type_identifier "STV") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (false "false") (, ",") (cast_expression "(bool *)0x0" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";"))) (return_statement "return uVar21;" (return "return") (identifier "uVar21") (; ";")) (} "}"))) (return_statement "return uVar21;" (return "return") (identifier "uVar21") (; ";")) (} "}")))
(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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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: (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 (pointer_expression argument: (identifier)) (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))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (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: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (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: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (call_expression function: (parenthesized_expression (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)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (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)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (identifier)) right: (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 (return_statement (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 (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))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))))) (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: (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: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (char_literal (escape_sequence))))) (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: (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))) (ERROR (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (false) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (return_statement (identifier)))) (return_statement (identifier)))))

ulonglong MASKED(void)

{
  longlong lVar1;
  int iVar2;
  uint uVar3;
  undefined4 uVar4;
  int *piVar5;
  byte bVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  Symbol_table *pSVar11;
  undefined4 *puVar12;
  uint uVar13;
  Layout *pLVar14;
  char cVar15;
  undefined4 in_a3;
  undefined1 uVar16;
  char unaff_s0;
  undefined1 *unaff_s1;
  undefined4 *puVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  ulonglong uVar21;
  uint in_stack_fffffeec;
  int iStack_48;
  int *piStack_44;
  
  puVar12 = (undefined4 *)&DAT_0000005c;
  puVar8 = PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8;
  puVar18 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar8,0x5c,PTR_s_in_a_linker_script_004c191c + 0x7f10);
  iVar2 = (**(code **)(puVar18 + 0x1c42dc))(*puVar12,*(undefined4 *)(puVar8 + 4),0);
  if (iVar2 == 0) {
    iVar9 = *(int *)(puVar18 + 0x1c3db8);
LAB_002fdc84:
    uVar4 = (**(code **)(puVar18 + 0x1c80cc))(iVar9 + 0x79fc);
    (**(code **)(puVar18 + 0x1c3ec8))(uVar4,*(undefined4 *)(puVar8 + 4));
    return 0;
  }
  uVar3 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar3 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar6 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar6 = (**(code **)(puVar18 + 0x1c4168))();
      bVar6 = bVar6 ^ 1;
    }
  }
  else {
    bVar6 = uVar3 != 0x8000;
  }
  iVar9 = *(int *)(puVar18 + 0x1c3db8);
  if (bVar6 == 0) goto LAB_002fdc84;
  puVar17 = (undefined4 *)puVar12[7];
  if (puVar17 != (undefined4 *)0x0) {
    uVar4 = (**(code **)(puVar18 + 0x1c6da0))(iVar2);
    *puVar17 = uVar4;
  }
  if ((uint *)puVar12[9] != (uint *)0x0) {
    *(uint *)puVar12[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;
  }
  if ((uint *)puVar12[10] != (uint *)0x0) {
    *(uint *)puVar12[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;
  }
  piVar5 = *(int **)(puVar18 + 0x1c3e50);
  if ((byte *)puVar12[0xb] != (byte *)0x0) {
    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar5 = *(int **)(puVar18 + 0x1c3e50);
  }
  if (*(int *)(*piVar5 + 0xc) != 0) {
    iVar9 = **(int **)(*(int *)(*piVar5 + 0xc) + 4);
    if (iVar9 == 0x20) {
      return (ulonglong)*(uint *)(iVar2 + 0x30);
    }
    if (iVar9 == 0x40) {
      return *(ulonglong *)(iVar2 + 0x30);
    }
    (**(code **)(puVar18 + 0x1c3ecc))
              (*(int *)(puVar18 + 0x1c3db8) + 0x79d0,0xf9,*(int *)(puVar18 + 0x1c3db8) + 0x7f00);
  }
  pcVar19 = *(code **)(puVar18 + 0x1c3ecc);
  iVar2 = *(int *)(puVar18 + 0x1c3718) + -0x9b8;
  (*pcVar19)(iVar2,0x69,*(int *)(puVar18 + 0x1c3db8) + 0x7ef8);
  if (*(int *)(iVar2 + 4) == 0) {
    piVar5 = *(int **)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);
    iVar2 = *(int *)(pcVar19 + 0x1c3bd8);
    if (piVar5 != (int *)0x0) {
      iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);
      pcVar20 = *(code **)(pcVar19 + 0x1c7158);
      if (iVar2 != 0) {
        uVar3 = *(uint *)(iVar2 + 0x5228);
        uVar7 = *(uint *)(iVar2 + 0x522c);
        if (uVar3 == 0 && uVar7 == 0) {
          return *(ulonglong *)(piVar5[1] + 0x20);
        }
LAB_002fddc8:
        return CONCAT44(uVar3,uVar7);
      }
      goto LAB_002fdebc;
    }
LAB_002fde70:
    (**(code **)(pcVar19 + 0x1c3cec))(*(int *)(pcVar19 + 0x1c3538) + -0x9b8,0x69,iVar2 + 0x7ef8);
LAB_002fde88:
    (**(code **)(pcVar19 + 0x1c3cec))
              (*(int *)(pcVar19 + 0x1c3bd8) + 0x79d0,0x44a,*(int *)(pcVar19 + 0x1c3bd8) + 0x7ee0);
  }
  else {
    if (*(int *)(iVar2 + 4) != 1) goto LAB_002fde88;
    iVar2 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 0xc);
    if (iVar2 == 0) {
      iVar2 = *(int *)(pcVar19 + 0x1c3bd8);
      goto LAB_002fde70;
    }
    iVar9 = *(int *)(**(int **)(pcVar19 + 0x1c3c70) + 8);
    if (iVar9 != 0) {
      uVar3 = *(uint *)(iVar9 + 0x4e80);
      uVar7 = *(uint *)(iVar9 + 0x4e84);
      uVar13 = *(uint *)(iVar9 + 0x5228);
      uVar10 = *(uint *)(iVar9 + 0x522c);
      if (uVar3 == 0 && uVar7 == 0) {
        iVar2 = *(int *)(iVar2 + 4);
        if (uVar13 == 0 && uVar10 == 0) {
          uVar13 = *(uint *)(iVar2 + 0x20);
          uVar10 = *(uint *)(iVar2 + 0x24);
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar3 = *(uint *)(iVar2 + 0x28);
          uVar7 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar13 == 0 && uVar10 == 0) {
        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);
        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);
      }
      if ((uVar13 < uVar3) || ((uVar3 == uVar13 && (uVar10 < uVar7)))) {
        return CONCAT44(uVar13,uVar10);
      }
      goto LAB_002fddc8;
    }
  }
  pcVar20 = *(code **)(pcVar19 + 0x1c3cec);
  piVar5 = (int *)(*(int *)(pcVar19 + 0x1c3538) + -0x9b8);
  (*pcVar20)();
LAB_002fdebc:
  pcVar20 = pcVar20 + -0x24d0;
  MASKED();
  if (piStack_44 != (int *)0x0) {
    *piStack_44 = 0;
  }
  uVar21 = (**(code **)(*piVar5 + 0xc))();
  if (unaff_s1 != (undefined1 *)0x0) {
    *unaff_s1 = 1;
  }
  if ((unaff_s0 != '\0') && (*piStack_44 == 0)) {
    while (uVar16 = (undefined1)in_a3, iStack_48 == 0) {
      uVar21 = (**(code **)(pcVar20 + 0x1c3b68))
                         (*(int *)(pcVar20 + 0x1c3a54) + 0x79d0,0xa2,
                          *(int *)(pcVar20 + 0x1c3a54) + 0x7f18);
    }
    if (*(int *)(iStack_48 + 0x20) < 0) {
      lVar1 = *(longlong *)(iStack_48 + 8);
      *piStack_44 = iStack_48;
      return uVar21 + lVar1;
    }
    pLVar14 = (Layout *)&DAT_000000c5;
    cVar15 = (char)*(undefined4 *)(pcVar20 + 0x1c3a54) + '\b';
    pSVar11 = (Symbol_table *)(*(int *)(pcVar20 + 0x1c33b4) + 0x3574);
    (**(code **)(pcVar20 + 0x1c3b68))();
    uVar21 = gold::Expression::eval_maybe_dot
                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffeec,
                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,
                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);
    return uVar21;
  }
  return uVar21;
}

