
/* 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 value(Sizeof_headers_expression * this, Expression_eval_info *
   eei) */

uint64_t __thiscall
gold::Sizeof_headers_expression::value(Sizeof_headers_expression *this,Expression_eval_info *eei)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  int *piVar6;
  byte bVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  Target *this_00;
  Expression *this_01;
  undefined4 *puVar11;
  uint uVar12;
  Symbol_table *symtab;
  Layout *layout;
  undefined4 in_a3;
  undefined1 check_assertions;
  int unaff_s0;
  undefined1 *unaff_s1;
  undefined4 *puVar13;
  undefined *puVar14;
  code *pcVar15;
  code *pcVar16;
  uint64_t uVar17;
  int iStack_70;
  int *piStack_6c;
  char cStack_55;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);
  }
  else {
    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (iVar2 == 0x20) {
      unaff_s0 = 0x20;
      iVar2 = 0x34;
LAB_0027d9d0:
      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);
      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);
    }
    unaff_s0 = 0x38;
    if (iVar2 == 0x40) {
      iVar2 = 0x40;
      goto LAB_0027d9d0;
    }
  }
  puVar14 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0);
  puVar11 = (undefined4 *)&DAT_0000005c;
  pcVar15 = *(code **)(puVar14 + 0x1b4984);
  iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec;
  (*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730);
  iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0);
  if (iVar2 == 0) {
    iVar9 = *(int *)(pcVar15 + 0x1b47f8);
LAB_0027db94:
    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);
    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));
    return 0;
  }
  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar4 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar7 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();
      bVar7 = bVar7 ^ 1;
    }
  }
  else {
    bVar7 = uVar4 != 0x8000;
  }
  iVar9 = *(int *)(pcVar15 + 0x1b47f8);
  if (bVar7 == 0) goto LAB_0027db94;
  puVar13 = (undefined4 *)puVar11[7];
  if (puVar13 != (undefined4 *)0x0) {
    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);
    *puVar13 = uVar5;
  }
  if ((uint *)puVar11[9] != (uint *)0x0) {
    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;
  }
  if ((uint *)puVar11[10] != (uint *)0x0) {
    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;
  }
  piVar6 = *(int **)(pcVar15 + 0x1b516c);
  if ((byte *)puVar11[0xb] != (byte *)0x0) {
    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar6 = *(int **)(pcVar15 + 0x1b516c);
  }
  if (*(int *)(*piVar6 + 0xc) != 0) {
    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);
    if (iVar3 == 0x20) {
      return (uint64_t)*(uint *)(iVar2 + 0x30);
    }
    if (iVar3 == 0x40) {
      return *(uint64_t *)(iVar2 + 0x30);
    }
    (**(code **)(pcVar15 + 0x1b4950))
              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);
  }
  pcVar16 = *(code **)(pcVar15 + 0x1b4950);
  iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec;
  (*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718);
  if (*(int *)(iVar2 + 4) == 0) {
    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);
    iVar2 = *(int *)(pcVar16 + 0x1b4618);
    if (this_00 != (Target *)0x0) {
      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);
      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);
      if (iVar2 != 0) {
        uVar4 = *(uint *)(iVar2 + 0x5228);
        uVar8 = *(uint *)(iVar2 + 0x522c);
        if (uVar4 == 0 && uVar8 == 0) {
          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);
        }
LAB_0027dcd8:
        return CONCAT44(uVar4,uVar8);
      }
      goto LAB_0027ddcc;
    }
LAB_0027dd80:
    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);
LAB_0027dd98:
    (**(code **)(pcVar16 + 0x1b4770))
              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);
  }
  else {
    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;
    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);
    if (iVar2 == 0) {
      iVar2 = *(int *)(pcVar16 + 0x1b4618);
      goto LAB_0027dd80;
    }
    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);
    if (iVar3 != 0) {
      uVar4 = *(uint *)(iVar3 + 0x4e80);
      uVar8 = *(uint *)(iVar3 + 0x4e84);
      uVar12 = *(uint *)(iVar3 + 0x5228);
      uVar10 = *(uint *)(iVar3 + 0x522c);
      if (uVar4 == 0 && uVar8 == 0) {
        iVar2 = *(int *)(iVar2 + 4);
        if (uVar12 == 0 && uVar10 == 0) {
          uVar12 = *(uint *)(iVar2 + 0x20);
          uVar10 = *(uint *)(iVar2 + 0x24);
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar12 == 0 && uVar10 == 0) {
        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);
        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);
      }
      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {
        return CONCAT44(uVar12,uVar10);
      }
      goto LAB_0027dcd8;
    }
  }
  pcVar15 = *(code **)(pcVar16 + 0x1b4770);
  this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec);
  (*pcVar15)();
LAB_0027ddcc:
  pcVar15 = pcVar15 + -0x25c0;
  Target::abi_pagesize(this_00);
  cStack_55 = (char)unaff_s0;
  if (piStack_6c != (int *)0x0) {
    *piStack_6c = 0;
  }
  uVar17 = (**(code **)(*(int *)this_00 + 0xc))();
  if (unaff_s1 != (undefined1 *)0x0) {
    *unaff_s1 = 1;
  }
  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {
    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {
      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))
                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,
                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);
    }
    if (*(int *)(iStack_70 + 0x20) < 0) {
      lVar1 = *(longlong *)(iStack_70 + 8);
      *piStack_6c = iStack_70;
      return uVar17 + lVar1;
    }
    symtab = (Symbol_table *)&DAT_000000c5;
    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);
    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);
    (**(code **)(pcVar15 + 0x1b45ec))();
    uVar17 = 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);
    return uVar17;
  }
  return uVar17;
}



ulonglong FUN_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  int *piVar6;
  byte bVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  Symbol_table *pSVar11;
  undefined4 *puVar12;
  uint uVar13;
  Layout *pLVar14;
  char cVar15;
  undefined1 uVar16;
  int unaff_s0;
  undefined1 *unaff_s1;
  undefined4 *puVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  ulonglong uVar21;
  uint in_stack_fffffec4;
  int iStack_70;
  int *piStack_6c;
  char cStack_55;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);
  }
  else {
    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (iVar2 == 0x20) {
      unaff_s0 = 0x20;
      iVar2 = 0x34;
LAB_0027d9d0:
      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));
      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);
    }
    unaff_s0 = 0x38;
    if (iVar2 == 0x40) {
      iVar2 = 0x40;
      goto LAB_0027d9d0;
    }
  }
  puVar18 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);
  puVar12 = (undefined4 *)&DAT_0000005c;
  pcVar19 = *(code **)(puVar18 + 0x1b4984);
  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;
  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);
  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);
  if (iVar2 == 0) {
    iVar9 = *(int *)(pcVar19 + 0x1b47f8);
LAB_0027db94:
    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);
    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));
    return 0;
  }
  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar4 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar7 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();
      bVar7 = bVar7 ^ 1;
    }
  }
  else {
    bVar7 = uVar4 != 0x8000;
  }
  iVar9 = *(int *)(pcVar19 + 0x1b47f8);
  if (bVar7 == 0) goto LAB_0027db94;
  puVar17 = (undefined4 *)puVar12[7];
  if (puVar17 != (undefined4 *)0x0) {
    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);
    *puVar17 = uVar5;
  }
  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;
  }
  piVar6 = *(int **)(pcVar19 + 0x1b516c);
  if ((byte *)puVar12[0xb] != (byte *)0x0) {
    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar6 = *(int **)(pcVar19 + 0x1b516c);
  }
  if (*(int *)(*piVar6 + 0xc) != 0) {
    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);
    if (iVar3 == 0x20) {
      return (ulonglong)*(uint *)(iVar2 + 0x30);
    }
    if (iVar3 == 0x40) {
      return *(ulonglong *)(iVar2 + 0x30);
    }
    (**(code **)(pcVar19 + 0x1b4950))
              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);
  }
  pcVar20 = *(code **)(pcVar19 + 0x1b4950);
  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;
  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);
  if (*(int *)(iVar2 + 4) == 0) {
    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);
    iVar2 = *(int *)(pcVar20 + 0x1b4618);
    if (piVar6 != (int *)0x0) {
      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);
      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);
      if (iVar2 != 0) {
        uVar4 = *(uint *)(iVar2 + 0x5228);
        uVar8 = *(uint *)(iVar2 + 0x522c);
        if (uVar4 == 0 && uVar8 == 0) {
          return *(ulonglong *)(piVar6[1] + 0x20);
        }
LAB_0027dcd8:
        return CONCAT44(uVar4,uVar8);
      }
      goto LAB_0027ddcc;
    }
LAB_0027dd80:
    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);
LAB_0027dd98:
    (**(code **)(pcVar20 + 0x1b4770))
              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);
  }
  else {
    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;
    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);
    if (iVar2 == 0) {
      iVar2 = *(int *)(pcVar20 + 0x1b4618);
      goto LAB_0027dd80;
    }
    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);
    if (iVar3 != 0) {
      uVar4 = *(uint *)(iVar3 + 0x4e80);
      uVar8 = *(uint *)(iVar3 + 0x4e84);
      uVar13 = *(uint *)(iVar3 + 0x5228);
      uVar10 = *(uint *)(iVar3 + 0x522c);
      if (uVar4 == 0 && uVar8 == 0) {
        iVar2 = *(int *)(iVar2 + 4);
        if (uVar13 == 0 && uVar10 == 0) {
          uVar13 = *(uint *)(iVar2 + 0x20);
          uVar10 = *(uint *)(iVar2 + 0x24);
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar13 == 0 && uVar10 == 0) {
        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);
        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);
      }
      if ((uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {
        return CONCAT44(uVar13,uVar10);
      }
      goto LAB_0027dcd8;
    }
  }
  pcVar19 = *(code **)(pcVar20 + 0x1b4770);
  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);
  (*pcVar19)();
LAB_0027ddcc:
  pcVar19 = pcVar19 + -0x25c0;
  FUN_0027da40();
  cStack_55 = (char)unaff_s0;
  if (piStack_6c != (int *)0x0) {
    *piStack_6c = 0;
  }
  uVar21 = (**(code **)(*piVar6 + 0xc))();
  if (unaff_s1 != (undefined1 *)0x0) {
    *unaff_s1 = 1;
  }
  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {
    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {
      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))
                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,
                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);
    }
    if (*(int *)(iStack_70 + 0x20) < 0) {
      lVar1 = *(longlong *)(iStack_70 + 8);
      *piStack_6c = iStack_70;
      return uVar21 + lVar1;
    }
    pLVar14 = (Layout *)&DAT_000000c5;
    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';
    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);
    (**(code **)(pcVar19 + 0x1b45ec))();
    uVar21 = gold::Expression::eval_maybe_dot
                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,
                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,
                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);
    return uVar21;
  }
  return uVar21;
}


lui gp,0x1c
addiu gp,gp,-0x37b0
addu gp,gp,t9
lw v0,-0x75f0(gp)
addiu sp,sp,-0x28
sw gp,0x10(sp)
lw v0,0x0(v0)
sw ra,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
lw v0,0xc(v0)
beq v0,zero,0x0027da08
_li v1,0x20
lw v0,0x4(v0)
lw v0,0x0(v0)
beq v0,v1,0x0027d9fc
_li v1,0x40
bne v0,v1,0x0027da24
_li s0,0x38
li s1,0x40
lw t9,-0x4808(gp)
jalr t9
_lw a0,0x4(a1)
mul a0,s0,v0
lw ra,0x24(sp)
lw s0,0x1c(sp)
or v0,zero,zero
addu v1,a0,s1
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
li s0,0x20
b 0x0027d9d0
_li s1,0x34
lw a2,-0x7f64(gp)
li a1,0x69
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x2718
jalr t9
_addiu a0,a0,-0x5cec
lw a2,-0x7f64(gp)
li a1,0x50e
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x26f0
jalr t9
_addiu a0,a0,0x21f0
(translation_unit "ulonglong FUN_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier 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 "undefined1 uVar16;" type_identifier identifier ;) (declaration "int 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_fffffec4;" type_identifier identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "char cStack_55;" primitive_type identifier ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x2718" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" else (compound_statement "{\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" { (expression_statement "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" { (expression_statement "unaff_s0 = 0x20;" (assignment_expression "unaff_s0 = 0x20" identifier = number_literal) ;) (expression_statement "iVar2 = 0x34;" (assignment_expression "iVar2 = 0x34" identifier = number_literal) ;) (labeled_statement "LAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" (assignment_expression "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" identifier = (call_expression "(*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" (parenthesized_expression "(*(code *)PTR_expected_segment_count_004359c8)" ( (pointer_expression "*(code *)PTR_expected_segment_count_004359c8" * (cast_expression "(code *)PTR_expected_segment_count_004359c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_2 + 4))" ( (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) )))) ;)) (return_statement "return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);" return (call_expression "(ulonglong)(uint)(unaff_s0 * iVar3 + iVar2)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(unaff_s0 * iVar3 + iVar2)" ( (binary_expression "unaff_s0 * iVar3 + iVar2" (binary_expression "unaff_s0 * iVar3" identifier * identifier) + identifier) ))) ;) })) (expression_statement "unaff_s0 = 0x38;" (assignment_expression "unaff_s0 = 0x38" identifier = number_literal) ;) (if_statement "if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" if (parenthesized_expression "(iVar2 == 0x40)" ( (binary_expression "iVar2 == 0x40" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" { (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_0027d9d0;" goto statement_identifier ;) })) }))) (expression_statement "puVar18 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" ( (binary_expression "PTR_DAT_0043226c + 0x21f0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x26f0" identifier + number_literal) ))) ;) (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 "pcVar19 = *(code **)(puVar18 + 0x1b4984);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1b4984)" identifier = (pointer_expression "*(code **)(puVar18 + 0x1b4984)" * (cast_expression "(code **)(puVar18 + 0x1b4984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1b4984)" ( (binary_expression "puVar18 + 0x1b4984" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec" identifier = (binary_expression "*(int *)(puVar18 + 0x1b4974) + -0x5cec" (pointer_expression "*(int *)(puVar18 + 0x1b4974)" * (cast_expression "(int *)(puVar18 + 0x1b4974)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1b4974)" ( (binary_expression "puVar18 + 0x1b4974" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);" (call_expression "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar18 + 0x1b482c) + 0x2730" (pointer_expression "*(int *)(puVar18 + 0x1b482c)" * (cast_expression "(int *)(puVar18 + 0x1b482c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1b482c)" ( (binary_expression "puVar18 + 0x1b482c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5408))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b5408)" * (pointer_expression "*(code **)(pcVar19 + 0x1b5408)" * (cast_expression "(code **)(pcVar19 + 0x1b5408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b5408)" ( (binary_expression "pcVar19 + 0x1b5408" identifier + number_literal) ))))) )) (argument_list "(*puVar12,*(undefined4 *)(iVar3 + 4),0)" ( (pointer_expression "*puVar12" * identifier) , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" statement_identifier : (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b8da4))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b8da4)" * (pointer_expression "*(code **)(pcVar19 + 0x1b8da4)" * (cast_expression "(code **)(pcVar19 + 0x1b8da4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b8da4)" ( (binary_expression "pcVar19 + 0x1b8da4" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x221c)" ( (binary_expression "iVar9 + 0x221c" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));" (call_expression "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4))" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5310))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b5310)" * (pointer_expression "*(code **)(pcVar19 + 0x1b5310)" * (cast_expression "(code **)(pcVar19 + 0x1b5310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b5310)" ( (binary_expression "pcVar19 + 0x1b5310" identifier + number_literal) ))))) )) (argument_list "(uVar5,*(undefined4 *)(iVar3 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar4 = *(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 (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 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      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar7 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar7 = *(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      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" else (compound_statement "{\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" { (expression_statement "bVar7 = (**(code **)(pcVar19 + 0x1b556c))();" (assignment_expression "bVar7 = (**(code **)(pcVar19 + 0x1b556c))()" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b556c))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b556c))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b556c)" * (pointer_expression "*(code **)(pcVar19 + 0x1b556c)" * (cast_expression "(code **)(pcVar19 + 0x1b556c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b556c)" ( (binary_expression "pcVar19 + 0x1b556c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" identifier = (binary_expression "bVar7 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar7 = uVar4 != 0x8000;\n  }" else (compound_statement "{\n    bVar7 = uVar4 != 0x8000;\n  }" { (expression_statement "bVar7 = uVar4 != 0x8000;" (assignment_expression "bVar7 = uVar4 != 0x8000" identifier = (binary_expression "uVar4 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) ))))) ;) (if_statement "if (bVar7 == 0) goto LAB_0027db94;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0027db94;" 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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b77f0))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b77f0))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b77f0)" * (pointer_expression "*(code **)(pcVar19 + 0x1b77f0)" * (cast_expression "(code **)(pcVar19 + 0x1b77f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b77f0)" ( (binary_expression "pcVar19 + 0x1b77f0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar17 = uVar5;" (assignment_expression "*puVar17 = uVar5" (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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" * (cast_expression "(int **)(pcVar19 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b516c)" ( (binary_expression "pcVar19 + 0x1b516c" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" * (cast_expression "(int **)(pcVar19 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b516c)" ( (binary_expression "pcVar19 + 0x1b516c" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" if (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" { (expression_statement "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar6 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar6 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar6 + 0xc) + 4" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x20)" ( (binary_expression "iVar3 == 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 (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x40)" ( (binary_expression "iVar3 == 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 **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);" (call_expression "(**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b4950))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b4950)" * (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" * (cast_expression "(code **)(pcVar19 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b4950)" ( (binary_expression "pcVar19 + 0x1b4950" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" ( (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2720" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1b4950);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1b4950)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" * (cast_expression "(code **)(pcVar19 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b4950)" ( (binary_expression "pcVar19 + 0x1b4950" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar19 + 0x1b4940) + -0x5cec" (pointer_expression "*(int *)(pcVar19 + 0x1b4940)" * (cast_expression "(int *)(pcVar19 + 0x1b4940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4940)" ( (binary_expression "pcVar19 + 0x1b4940" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);" (call_expression "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2718" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\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    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }" { (expression_statement "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" * (cast_expression "(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" { (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b7d78);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b7d78)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1b7d78)" * (cast_expression "(code **)(pcVar20 + 0x1b7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b7d78)" ( (binary_expression "pcVar20 + 0x1b7d78" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar8 = *(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 (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" if (parenthesized_expression "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" { (return_statement "return *(ulonglong *)(piVar6[1] + 0x20);" return (pointer_expression "*(ulonglong *)(piVar6[1] + 0x20)" * (cast_expression "(ulonglong *)(piVar6[1] + 0x20)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6[1] + 0x20)" ( (binary_expression "piVar6[1] + 0x20" (subscript_expression "piVar6[1]" identifier [ number_literal ]) + number_literal) )))) ;) })) (labeled_statement "LAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);" statement_identifier : (return_statement "return CONCAT44(uVar4,uVar8);" return (call_expression "CONCAT44(uVar4,uVar8)" identifier (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_0027ddcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" statement_identifier : (expression_statement "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" * (cast_expression "(int *)(pcVar20 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4760)" ( (binary_expression "pcVar20 + 0x1b4760" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x2718" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" statement_identifier : (expression_statement "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x21f0" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x2700" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;" 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_0027dd98;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0027dd80;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" { (expression_statement "uVar4 = *(uint *)(iVar3 + 0x4e80);" (assignment_expression "uVar4 = *(uint *)(iVar3 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e80)" * (cast_expression "(uint *)(iVar3 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e80)" ( (binary_expression "iVar3 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x4e84);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e84)" * (cast_expression "(uint *)(iVar3 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e84)" ( (binary_expression "iVar3 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar3 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar3 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x5228)" * (cast_expression "(uint *)(iVar3 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5228)" ( (binary_expression "iVar3 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar3 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar3 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x522c)" * (cast_expression "(uint *)(iVar3 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x522c)" ( (binary_expression "iVar3 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" if (parenthesized_expression "((uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8))))" ( (binary_expression "(uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))" (parenthesized_expression "(uVar13 < uVar4)" ( (binary_expression "uVar13 < uVar4" identifier < identifier) )) || (parenthesized_expression "((uVar4 == uVar13 && (uVar10 < uVar8)))" ( (parenthesized_expression "(uVar4 == uVar13 && (uVar10 < uVar8))" ( (binary_expression "uVar4 == uVar13 && (uVar10 < uVar8)" (binary_expression "uVar4 == uVar13" identifier == identifier) && (parenthesized_expression "(uVar10 < uVar8)" ( (binary_expression "uVar10 < uVar8" 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_0027dcd8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b4770);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b4770)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);" (assignment_expression "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" * (cast_expression "(int *)(pcVar20 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4760)" ( (binary_expression "pcVar20 + 0x1b4760" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;" statement_identifier : (expression_statement "pcVar19 = pcVar19 + -0x25c0;" (assignment_expression "pcVar19 = pcVar19 + -0x25c0" identifier = (binary_expression "pcVar19 + -0x25c0" identifier + number_literal)) ;)) (expression_statement "FUN_0027da40();" (call_expression "FUN_0027da40()" identifier (argument_list "()" ( ))) ;) (expression_statement "cStack_55 = (char)unaff_s0;" (assignment_expression "cStack_55 = (char)unaff_s0" identifier = (cast_expression "(char)unaff_s0" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }" if (parenthesized_expression "(piStack_6c != (int *)0x0)" ( (binary_expression "piStack_6c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_6c = 0;\n  }" { (expression_statement "*piStack_6c = 0;" (assignment_expression "*piStack_6c = 0" (pointer_expression "*piStack_6c" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = (**(code **)(*piVar6 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar6 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar6 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar6 + 0xc))" ( (pointer_expression "**(code **)(*piVar6 + 0xc)" * (pointer_expression "*(code **)(*piVar6 + 0xc)" * (cast_expression "(code **)(*piVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * 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 ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "((cStack_55 != '\0') && (*piStack_6c == 0))" ( (binary_expression "(cStack_55 != '\0') && (*piStack_6c == 0)" (parenthesized_expression "(cStack_55 != '\0')" ( (binary_expression "cStack_55 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_6c == 0)" ( (binary_expression "*piStack_6c == 0" (pointer_expression "*piStack_6c" * identifier) == number_literal) ))) )) (compound_statement "{\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" while (parenthesized_expression "(uVar16 = (undefined1)param_4, iStack_70 == 0)" ( (comma_expression "uVar16 = (undefined1)param_4, iStack_70 == 0" (assignment_expression "uVar16 = (undefined1)param_4" identifier = (cast_expression "(undefined1)param_4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) , (binary_expression "iStack_70 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" { (expression_statement "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);" (assignment_expression "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" * (cast_expression "(code **)(pcVar19 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b45ec)" ( (binary_expression "pcVar19 + 0x1b45ec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" ( (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" * (cast_expression "(int *)(pcVar19 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x2738" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" * (cast_expression "(int *)(pcVar19 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" if (parenthesized_expression "(*(int *)(iStack_70 + 0x20) < 0)" ( (binary_expression "*(int *)(iStack_70 + 0x20) < 0" (pointer_expression "*(int *)(iStack_70 + 0x20)" * (cast_expression "(int *)(iStack_70 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 0x20)" ( (binary_expression "iStack_70 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" { (expression_statement "lVar1 = *(longlong *)(iStack_70 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_70 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_70 + 8)" * (cast_expression "(longlong *)(iStack_70 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 8)" ( (binary_expression "iStack_70 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_6c = iStack_70;" (assignment_expression "*piStack_6c = iStack_70" (pointer_expression "*piStack_6c" * 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 *)(pcVar19 + 0x1b4494) + '(';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" identifier = (binary_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" (cast_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(pcVar19 + 0x1b4494)" * (cast_expression "(undefined4 *)(pcVar19 + 0x1b4494)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) ))))) + (char_literal "'('" ' character '))) ;) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" identifier = (cast_expression "(Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" ( (binary_expression "*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x1b45dc)" * (cast_expression "(int *)(pcVar19 + 0x1b45dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b45dc)" ( (binary_expression "pcVar19 + 0x1b45dc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x1b45ec))();" (call_expression "(**(code **)(pcVar19 + 0x1b45ec))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" * (cast_expression "(code **)(pcVar19 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b45ec)" ( (binary_expression "pcVar19 + 0x1b45ec" 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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4" ( (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: 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 value(Sizeof_headers_expression * this, Expression_eval_info *\n   eei) */\n\nuint64_t __thiscall\ngold::Sizeof_headers_expression::value(Sizeof_headers_expression *this,Expression_eval_info *eei)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar11;\n  uint uVar12;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  int unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  uint64_t uVar17;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0);\n  puVar11 = (undefined4 *)&DAT_0000005c;\n  pcVar15 = *(code **)(puVar14 + 0x1b4984);\n  iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec;\n  (*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar15 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar15 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar13 = (undefined4 *)puVar11[7];\n  if (puVar13 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);\n    *puVar13 = uVar5;\n  }\n  if ((uint *)puVar11[9] != (uint *)0x0) {\n    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar11[10] != (uint *)0x0) {\n    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  if ((byte *)puVar11[0xb] != (byte *)0x0) {\n    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);\n  }\n  pcVar16 = *(code **)(pcVar15 + 0x1b4950);\n  iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec;\n  (*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar16 + 0x1b4618);\n    if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar15 = *(code **)(pcVar16 + 0x1b4770);\n  this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec);\n  (*pcVar15)();\nLAB_0027ddcc:\n  pcVar15 = pcVar15 + -0x25c0;\n  Target::abi_pagesize(this_00);\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar17 = (**(code **)(*(int *)this_00 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }\n    symtab = (Symbol_table *)&DAT_000000c5;\n    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);\n    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar15 + 0x1b45ec))();\n    uVar17 = 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,\n                        false,(bool *)0x0);\n    return uVar17;\n  }\n  return uVar17;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "uint64_t __thiscall\ngold::Sizeof_headers_expression::value(Sizeof_headers_expression *this,Expression_eval_info *eei)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar11;\n  uint uVar12;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  int unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  uint64_t uVar17;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0);\n  puVar11 = (undefined4 *)&DAT_0000005c;\n  pcVar15 = *(code **)(puVar14 + 0x1b4984);\n  iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec;\n  (*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar15 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar15 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar13 = (undefined4 *)puVar11[7];\n  if (puVar13 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);\n    *puVar13 = uVar5;\n  }\n  if ((uint *)puVar11[9] != (uint *)0x0) {\n    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar11[10] != (uint *)0x0) {\n    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  if ((byte *)puVar11[0xb] != (byte *)0x0) {\n    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);\n  }\n  pcVar16 = *(code **)(pcVar15 + 0x1b4950);\n  iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec;\n  (*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar16 + 0x1b4618);\n    if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar15 = *(code **)(pcVar16 + 0x1b4770);\n  this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec);\n  (*pcVar15)();\nLAB_0027ddcc:\n  pcVar15 = pcVar15 + -0x25c0;\n  Target::abi_pagesize(this_00);\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar17 = (**(code **)(*(int *)this_00 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }\n    symtab = (Symbol_table *)&DAT_000000c5;\n    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);\n    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar15 + 0x1b45ec))();\n    uVar17 = 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,\n                        false,(bool *)0x0);\n    return uVar17;\n  }\n  return uVar17;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Sizeof_headers_expression::" identifier : : identifier : :) (function_declarator "value(Sizeof_headers_expression *this,Expression_eval_info *eei)" identifier (parameter_list "(Sizeof_headers_expression *this,Expression_eval_info *eei)" ( (parameter_declaration "Sizeof_headers_expression *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Expression_eval_info *eei" type_identifier (pointer_declarator "*eei" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Target *this_00;\n  Expression *this_01;\n  undefined4 *puVar11;\n  uint uVar12;\n  Symbol_table *symtab;\n  Layout *layout;\n  undefined4 in_a3;\n  undefined1 check_assertions;\n  int unaff_s0;\n  undefined1 *unaff_s1;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  uint64_t uVar17;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0);\n  puVar11 = (undefined4 *)&DAT_0000005c;\n  pcVar15 = *(code **)(puVar14 + 0x1b4984);\n  iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec;\n  (*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar15 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar15 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar13 = (undefined4 *)puVar11[7];\n  if (puVar13 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);\n    *puVar13 = uVar5;\n  }\n  if ((uint *)puVar11[9] != (uint *)0x0) {\n    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }\n  if ((uint *)puVar11[10] != (uint *)0x0) {\n    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }\n  piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  if ((byte *)puVar11[0xb] != (byte *)0x0) {\n    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);\n  }\n  pcVar16 = *(code **)(pcVar15 + 0x1b4950);\n  iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec;\n  (*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar16 + 0x1b4618);\n    if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar15 = *(code **)(pcVar16 + 0x1b4770);\n  this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec);\n  (*pcVar15)();\nLAB_0027ddcc:\n  pcVar15 = pcVar15 + -0x25c0;\n  Target::abi_pagesize(this_00);\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar17 = (**(code **)(*(int *)this_00 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }\n    symtab = (Symbol_table *)&DAT_000000c5;\n    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);\n    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar15 + 0x1b45ec))();\n    uVar17 = 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,\n                        false,(bool *)0x0);\n    return uVar17;\n  }\n  return uVar17;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" 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 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" 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 "int unaff_s0;" primitive_type identifier ;) (declaration "undefined1 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint64_t uVar17;" primitive_type identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "char cStack_55;" primitive_type identifier ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_s__0043226c + 0x2718)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + 0x2718" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" else (compound_statement "{\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" { (expression_statement "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);\n      return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" { (expression_statement "unaff_s0 = 0x20;" (assignment_expression "unaff_s0 = 0x20" identifier = number_literal) ;) (expression_statement "iVar2 = 0x34;" (assignment_expression "iVar2 = 0x34" identifier = number_literal) ;) (labeled_statement "LAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout);" (assignment_expression "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(eei->layout)" identifier = (call_expression "(*(code *)PTR_expected_segment_count_004359c8)(eei->layout)" (parenthesized_expression "(*(code *)PTR_expected_segment_count_004359c8)" ( (pointer_expression "*(code *)PTR_expected_segment_count_004359c8" * (cast_expression "(code *)PTR_expected_segment_count_004359c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(eei->layout)" ( (field_expression "eei->layout" identifier -> field_identifier) )))) ;)) (return_statement "return (uint64_t)(uint)(unaff_s0 * iVar3 + iVar2);" return (cast_expression "(uint64_t)(uint)(unaff_s0 * iVar3 + iVar2)" ( (type_descriptor "uint64_t" primitive_type) ) (call_expression "(uint)(unaff_s0 * iVar3 + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s0 * iVar3 + iVar2)" ( (binary_expression "unaff_s0 * iVar3 + iVar2" (binary_expression "unaff_s0 * iVar3" identifier * identifier) + identifier) )))) ;) })) (expression_statement "unaff_s0 = 0x38;" (assignment_expression "unaff_s0 = 0x38" identifier = number_literal) ;) (if_statement "if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" if (parenthesized_expression "(iVar2 == 0x40)" ( (binary_expression "iVar2 == 0x40" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" { (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_0027d9d0;" goto statement_identifier ;) })) }))) (expression_statement "puVar14 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + 0x21f0,0x50e,PTR_s__0043226c + 0x26f0)" ( (binary_expression "PTR_s__0043226c + 0x21f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + 0x26f0" identifier + number_literal) ))) ;) (expression_statement "puVar11 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar11 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x1b4984);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x1b4984)" identifier = (pointer_expression "*(code **)(puVar14 + 0x1b4984)" * (cast_expression "(code **)(puVar14 + 0x1b4984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1b4984)" ( (binary_expression "puVar14 + 0x1b4984" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(puVar14 + 0x1b4974) + -0x5cec" identifier = (binary_expression "*(int *)(puVar14 + 0x1b4974) + -0x5cec" (pointer_expression "*(int *)(puVar14 + 0x1b4974)" * (cast_expression "(int *)(puVar14 + 0x1b4974)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1b4974)" ( (binary_expression "puVar14 + 0x1b4974" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730);" (call_expression "(*pcVar15)(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3,0x5c,*(int *)(puVar14 + 0x1b482c) + 0x2730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar14 + 0x1b482c) + 0x2730" (pointer_expression "*(int *)(puVar14 + 0x1b482c)" * (cast_expression "(int *)(puVar14 + 0x1b482c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1b482c)" ( (binary_expression "puVar14 + 0x1b482c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0);" (assignment_expression "iVar2 = (**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0)" identifier = (call_expression "(**(code **)(pcVar15 + 0x1b5408))(*puVar11,*(undefined4 *)(iVar3 + 4),0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b5408))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b5408)" * (pointer_expression "*(code **)(pcVar15 + 0x1b5408)" * (cast_expression "(code **)(pcVar15 + 0x1b5408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b5408)" ( (binary_expression "pcVar15 + 0x1b5408" identifier + number_literal) ))))) )) (argument_list "(*puVar11,*(undefined4 *)(iVar3 + 4),0)" ( (pointer_expression "*puVar11" * identifier) , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar15 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar15 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar15 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar15 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x1b47f8)" * (cast_expression "(int *)(pcVar15 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b47f8)" ( (binary_expression "pcVar15 + 0x1b47f8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0027db94:\n    uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);" statement_identifier : (expression_statement "uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c);" (assignment_expression "uVar5 = (**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c)" identifier = (call_expression "(**(code **)(pcVar15 + 0x1b8da4))(iVar9 + 0x221c)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b8da4))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b8da4)" * (pointer_expression "*(code **)(pcVar15 + 0x1b8da4)" * (cast_expression "(code **)(pcVar15 + 0x1b8da4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b8da4)" ( (binary_expression "pcVar15 + 0x1b8da4" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x221c)" ( (binary_expression "iVar9 + 0x221c" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));" (call_expression "(**(code **)(pcVar15 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4))" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b5310))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b5310)" * (pointer_expression "*(code **)(pcVar15 + 0x1b5310)" * (cast_expression "(code **)(pcVar15 + 0x1b5310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b5310)" ( (binary_expression "pcVar15 + 0x1b5310" identifier + number_literal) ))))) )) (argument_list "(uVar5,*(undefined4 *)(iVar3 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar4 = *(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 (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 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      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar7 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar7 = *(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      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" else (compound_statement "{\n      bVar7 = (**(code **)(pcVar15 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" { (expression_statement "bVar7 = (**(code **)(pcVar15 + 0x1b556c))();" (assignment_expression "bVar7 = (**(code **)(pcVar15 + 0x1b556c))()" identifier = (call_expression "(**(code **)(pcVar15 + 0x1b556c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b556c))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b556c)" * (pointer_expression "*(code **)(pcVar15 + 0x1b556c)" * (cast_expression "(code **)(pcVar15 + 0x1b556c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b556c)" ( (binary_expression "pcVar15 + 0x1b556c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" identifier = (binary_expression "bVar7 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar7 = uVar4 != 0x8000;\n  }" else (compound_statement "{\n    bVar7 = uVar4 != 0x8000;\n  }" { (expression_statement "bVar7 = uVar4 != 0x8000;" (assignment_expression "bVar7 = uVar4 != 0x8000" identifier = (binary_expression "uVar4 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar9 = *(int *)(pcVar15 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar15 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x1b47f8)" * (cast_expression "(int *)(pcVar15 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b47f8)" ( (binary_expression "pcVar15 + 0x1b47f8" identifier + number_literal) ))))) ;) (if_statement "if (bVar7 == 0) goto LAB_0027db94;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0027db94;" goto statement_identifier ;)) (expression_statement "puVar13 = (undefined4 *)puVar11[7];" (assignment_expression "puVar13 = (undefined4 *)puVar11[7]" identifier = (cast_expression "(undefined4 *)puVar11[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[7]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);\n    *puVar13 = uVar5;\n  }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);\n    *puVar13 = uVar5;\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2);" (assignment_expression "uVar5 = (**(code **)(pcVar15 + 0x1b77f0))(iVar2)" identifier = (call_expression "(**(code **)(pcVar15 + 0x1b77f0))(iVar2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b77f0))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b77f0)" * (pointer_expression "*(code **)(pcVar15 + 0x1b77f0)" * (cast_expression "(code **)(pcVar15 + 0x1b77f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b77f0)" ( (binary_expression "pcVar15 + 0x1b77f0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar13 = uVar5;" (assignment_expression "*puVar13 = uVar5" (pointer_expression "*puVar13" * identifier) = identifier) ;) })) (if_statement "if ((uint *)puVar11[9] != (uint *)0x0) {\n    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "((uint *)puVar11[9] != (uint *)0x0)" ( (binary_expression "(uint *)puVar11[9] != (uint *)0x0" (cast_expression "(uint *)puVar11[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[9]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;\n  }" { (expression_statement "*(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c;" (assignment_expression "*(uint *)puVar11[9] = *(uint *)(iVar2 + 0x28) >> 0x1c" (pointer_expression "*(uint *)puVar11[9]" * (cast_expression "(uint *)puVar11[9]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[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 *)puVar11[10] != (uint *)0x0) {\n    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" if (parenthesized_expression "((uint *)puVar11[10] != (uint *)0x0)" ( (binary_expression "(uint *)puVar11[10] != (uint *)0x0" (cast_expression "(uint *)puVar11[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[10]" identifier [ number_literal ])) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;\n  }" { (expression_statement "*(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e;" (assignment_expression "*(uint *)puVar11[10] = (uint)(*(int *)(iVar2 + 0x28) << 8) >> 0x1e" (pointer_expression "*(uint *)puVar11[10]" * (cast_expression "(uint *)puVar11[10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[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 "piVar6 = *(int **)(pcVar15 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar15 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x1b516c)" * (cast_expression "(int **)(pcVar15 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b516c)" ( (binary_expression "pcVar15 + 0x1b516c" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar11[0xb] != (byte *)0x0) {\n    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  }" if (parenthesized_expression "((byte *)puVar11[0xb] != (byte *)0x0)" ( (binary_expression "(byte *)puVar11[0xb] != (byte *)0x0" (cast_expression "(byte *)puVar11[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[0xb]" identifier [ number_literal ])) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar15 + 0x1b516c);\n  }" { (expression_statement "*(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);" (assignment_expression "*(byte *)puVar11[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a)" (pointer_expression "*(byte *)puVar11[0xb]" * (cast_expression "(byte *)puVar11[0xb]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[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 "piVar6 = *(int **)(pcVar15 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar15 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x1b516c)" * (cast_expression "(int **)(pcVar15 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b516c)" ( (binary_expression "pcVar15 + 0x1b516c" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);\n  }" if (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);\n  }" { (expression_statement "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar6 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar6 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar6 + 0xc) + 4" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar3 == 0x20) {\n      return (uint64_t)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x20)" ( (binary_expression "iVar3 == 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 (iVar3 == 0x40) {\n      return *(uint64_t *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x40)" ( (binary_expression "iVar3 == 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 **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720);" (call_expression "(**(code **)(pcVar15 + 0x1b4950))\n              (*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b4950))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b4950)" * (pointer_expression "*(code **)(pcVar15 + 0x1b4950)" * (cast_expression "(code **)(pcVar15 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b4950)" ( (binary_expression "pcVar15 + 0x1b4950" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar15 + 0x1b47f8) + 0x2720)" ( (binary_expression "*(int *)(pcVar15 + 0x1b47f8) + 0x21f0" (pointer_expression "*(int *)(pcVar15 + 0x1b47f8)" * (cast_expression "(int *)(pcVar15 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b47f8)" ( (binary_expression "pcVar15 + 0x1b47f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x1b47f8) + 0x2720" (pointer_expression "*(int *)(pcVar15 + 0x1b47f8)" * (cast_expression "(int *)(pcVar15 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b47f8)" ( (binary_expression "pcVar15 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x1b4950);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x1b4950)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x1b4950)" * (cast_expression "(code **)(pcVar15 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b4950)" ( (binary_expression "pcVar15 + 0x1b4950" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec;" (assignment_expression "iVar2 = *(int *)(pcVar15 + 0x1b4940) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar15 + 0x1b4940) + -0x5cec" (pointer_expression "*(int *)(pcVar15 + 0x1b4940)" * (cast_expression "(int *)(pcVar15 + 0x1b4940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b4940)" ( (binary_expression "pcVar15 + 0x1b4940" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718);" (call_expression "(*pcVar16)(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(iVar2,0x69,*(int *)(pcVar15 + 0x1b47f8) + 0x2718)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar15 + 0x1b47f8) + 0x2718" (pointer_expression "*(int *)(pcVar15 + 0x1b47f8)" * (cast_expression "(int *)(pcVar15 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b47f8)" ( (binary_expression "pcVar15 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar16 + 0x1b4618);\n    if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\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    this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar16 + 0x1b4618);\n    if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);\n  }" { (expression_statement "this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);" (assignment_expression "this_00 = *(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" * (cast_expression "(Target **)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" ( (type_descriptor "Target **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar16 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar16 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar16 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar16 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4f8c)" ( (binary_expression "pcVar16 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar16 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar16 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x1b4618)" * (cast_expression "(int *)(pcVar16 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4618)" ( (binary_expression "pcVar16 + 0x1b4618" identifier + number_literal) ))))) ;) (if_statement "if (this_00 != (Target *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\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      iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n      pcVar15 = *(code **)(pcVar16 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" { (expression_statement "iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar16 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar16 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar16 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar16 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar16 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4f8c)" ( (binary_expression "pcVar16 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x1b7d78);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x1b7d78)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x1b7d78)" * (cast_expression "(code **)(pcVar16 + 0x1b7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b7d78)" ( (binary_expression "pcVar16 + 0x1b7d78" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar8 = *(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 (uVar4 == 0 && uVar8 == 0) {\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }" if (parenthesized_expression "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n          return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);\n        }" { (return_statement "return *(uint64_t *)(*(int *)(this_00 + 4) + 0x20);" return (pointer_expression "*(uint64_t *)(*(int *)(this_00 + 4) + 0x20)" * (cast_expression "(uint64_t *)(*(int *)(this_00 + 4) + 0x20)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this_00 + 4) + 0x20)" ( (binary_expression "*(int *)(this_00 + 4) + 0x20" (pointer_expression "*(int *)(this_00 + 4)" * (cast_expression "(int *)(this_00 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 4)" ( (binary_expression "this_00 + 4" identifier + number_literal) )))) + number_literal) )))) ;) })) (labeled_statement "LAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);" statement_identifier : (return_statement "return CONCAT44(uVar4,uVar8);" return (call_expression "CONCAT44(uVar4,uVar8)" identifier (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_0027ddcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0027dd80:\n    (**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" statement_identifier : (expression_statement "(**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" (call_expression "(**(code **)(pcVar16 + 0x1b4770))(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" (parenthesized_expression "(**(code **)(pcVar16 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar16 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar16 + 0x1b4770)" * (cast_expression "(code **)(pcVar16 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4770)" ( (binary_expression "pcVar16 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar16 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" ( (binary_expression "*(int *)(pcVar16 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar16 + 0x1b4760)" * (cast_expression "(int *)(pcVar16 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4760)" ( (binary_expression "pcVar16 + 0x1b4760" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x2718" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0027dd98:\n    (**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);" statement_identifier : (expression_statement "(**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700);" (call_expression "(**(code **)(pcVar16 + 0x1b4770))\n              (*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700)" (parenthesized_expression "(**(code **)(pcVar16 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar16 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar16 + 0x1b4770)" * (cast_expression "(code **)(pcVar16 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4770)" ( (binary_expression "pcVar16 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar16 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar16 + 0x1b4618) + 0x2700)" ( (binary_expression "*(int *)(pcVar16 + 0x1b4618) + 0x21f0" (pointer_expression "*(int *)(pcVar16 + 0x1b4618)" * (cast_expression "(int *)(pcVar16 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4618)" ( (binary_expression "pcVar16 + 0x1b4618" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar16 + 0x1b4618) + 0x2700" (pointer_expression "*(int *)(pcVar16 + 0x1b4618)" * (cast_expression "(int *)(pcVar16 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4618)" ( (binary_expression "pcVar16 + 0x1b4618" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;" 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_0027dd98;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar16 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar16 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar16 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar16 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar16 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4f8c)" ( (binary_expression "pcVar16 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(pcVar16 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar16 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar16 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x1b4618)" * (cast_expression "(int *)(pcVar16 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4618)" ( (binary_expression "pcVar16 + 0x1b4618" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0027dd80;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8);" (assignment_expression "iVar3 = *(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar16 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar16 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar16 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar16 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar16 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar16 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4f8c)" ( (binary_expression "pcVar16 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar12 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }\n      if ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" { (expression_statement "uVar4 = *(uint *)(iVar3 + 0x4e80);" (assignment_expression "uVar4 = *(uint *)(iVar3 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e80)" * (cast_expression "(uint *)(iVar3 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e80)" ( (binary_expression "iVar3 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x4e84);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e84)" * (cast_expression "(uint *)(iVar3 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e84)" ( (binary_expression "iVar3 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(iVar3 + 0x5228);" (assignment_expression "uVar12 = *(uint *)(iVar3 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x5228)" * (cast_expression "(uint *)(iVar3 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5228)" ( (binary_expression "iVar3 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar3 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar3 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x522c)" * (cast_expression "(uint *)(iVar3 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x522c)" ( (binary_expression "iVar3 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n      }\n      else if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 (uVar12 == 0 && uVar10 == 0) {\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" if (parenthesized_expression "(uVar12 == 0 && uVar10 == 0)" ( (binary_expression "uVar12 == 0 && uVar10 == 0" (binary_expression "uVar12 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n          uVar12 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar12 = *(uint *)(iVar2 + 0x20);" (assignment_expression "uVar12 = *(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 "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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 (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" else (if_statement "if (uVar12 == 0 && uVar10 == 0) {\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" if (parenthesized_expression "(uVar12 == 0 && uVar10 == 0)" ( (binary_expression "uVar12 == 0 && uVar10 == 0" (binary_expression "uVar12 == 0" identifier == number_literal) && (binary_expression "uVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n        uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);\n        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);\n      }" { (expression_statement "uVar12 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);" (assignment_expression "uVar12 = *(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 ((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar12,uVar10);\n      }" if (parenthesized_expression "((uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8))))" ( (binary_expression "(uVar12 < uVar4) || ((uVar4 == uVar12 && (uVar10 < uVar8)))" (parenthesized_expression "(uVar12 < uVar4)" ( (binary_expression "uVar12 < uVar4" identifier < identifier) )) || (parenthesized_expression "((uVar4 == uVar12 && (uVar10 < uVar8)))" ( (parenthesized_expression "(uVar4 == uVar12 && (uVar10 < uVar8))" ( (binary_expression "uVar4 == uVar12 && (uVar10 < uVar8)" (binary_expression "uVar4 == uVar12" identifier == identifier) && (parenthesized_expression "(uVar10 < uVar8)" ( (binary_expression "uVar10 < uVar8" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        return CONCAT44(uVar12,uVar10);\n      }" { (return_statement "return CONCAT44(uVar12,uVar10);" return (call_expression "CONCAT44(uVar12,uVar10)" identifier (argument_list "(uVar12,uVar10)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_0027dcd8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x1b4770);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x1b4770)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x1b4770)" * (cast_expression "(code **)(pcVar16 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x1b4770)" ( (binary_expression "pcVar16 + 0x1b4770" identifier + number_literal) ))))) ;) (expression_statement "this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec);" (assignment_expression "this_00 = (Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec)" identifier = (cast_expression "(Target *)(*(int *)(pcVar16 + 0x1b4760) + -0x5cec)" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar16 + 0x1b4760) + -0x5cec)" ( (binary_expression "*(int *)(pcVar16 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar16 + 0x1b4760)" * (cast_expression "(int *)(pcVar16 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x1b4760)" ( (binary_expression "pcVar16 + 0x1b4760" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0027ddcc:\n  pcVar15 = pcVar15 + -0x25c0;" statement_identifier : (expression_statement "pcVar15 = pcVar15 + -0x25c0;" (assignment_expression "pcVar15 = pcVar15 + -0x25c0" identifier = (binary_expression "pcVar15 + -0x25c0" identifier + number_literal)) ;)) (labeled_statement "Target::abi_pagesize(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize(this_00);" (call_expression "abi_pagesize(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "cStack_55 = (char)unaff_s0;" (assignment_expression "cStack_55 = (char)unaff_s0" identifier = (cast_expression "(char)unaff_s0" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }" if (parenthesized_expression "(piStack_6c != (int *)0x0)" ( (binary_expression "piStack_6c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_6c = 0;\n  }" { (expression_statement "*piStack_6c = 0;" (assignment_expression "*piStack_6c = 0" (pointer_expression "*piStack_6c" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = (**(code **)(*(int *)this_00 + 0xc))();" (assignment_expression "uVar17 = (**(code **)(*(int *)this_00 + 0xc))()" identifier = (call_expression "(**(code **)(*(int *)this_00 + 0xc))()" (parenthesized_expression "(**(code **)(*(int *)this_00 + 0xc))" ( (pointer_expression "**(code **)(*(int *)this_00 + 0xc)" * (pointer_expression "*(code **)(*(int *)this_00 + 0xc)" * (cast_expression "(code **)(*(int *)this_00 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this_00 + 0xc)" ( (binary_expression "*(int *)this_00 + 0xc" (pointer_expression "*(int *)this_00" * (cast_expression "(int *)this_00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }\n    symtab = (Symbol_table *)&DAT_000000c5;\n    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);\n    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar15 + 0x1b45ec))();\n    uVar17 = 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,\n                        false,(bool *)0x0);\n    return uVar17;\n  }" if (parenthesized_expression "((cStack_55 != '\0') && (*piStack_6c == 0))" ( (binary_expression "(cStack_55 != '\0') && (*piStack_6c == 0)" (parenthesized_expression "(cStack_55 != '\0')" ( (binary_expression "cStack_55 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_6c == 0)" ( (binary_expression "*piStack_6c == 0" (pointer_expression "*piStack_6c" * identifier) == number_literal) ))) )) (compound_statement "{\n    while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }\n    symtab = (Symbol_table *)&DAT_000000c5;\n    layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728);\n    this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar15 + 0x1b45ec))();\n    uVar17 = 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,\n                        false,(bool *)0x0);\n    return uVar17;\n  }" { (while_statement "while (check_assertions = (undefined1)in_a3, iStack_70 == 0) {\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }" while (parenthesized_expression "(check_assertions = (undefined1)in_a3, iStack_70 == 0)" ( (comma_expression "check_assertions = (undefined1)in_a3, iStack_70 == 0" (assignment_expression "check_assertions = (undefined1)in_a3" identifier = (cast_expression "(undefined1)in_a3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) , (binary_expression "iStack_70 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);\n    }" { (expression_statement "uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738);" (assignment_expression "uVar17 = (**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738)" identifier = (call_expression "(**(code **)(pcVar15 + 0x1b45ec))\n                         (*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar15 + 0x1b45ec)" * (cast_expression "(code **)(pcVar15 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b45ec)" ( (binary_expression "pcVar15 + 0x1b45ec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar15 + 0x1b4494) + 0x2738)" ( (binary_expression "*(int *)(pcVar15 + 0x1b4494) + 0x21f0" (pointer_expression "*(int *)(pcVar15 + 0x1b4494)" * (cast_expression "(int *)(pcVar15 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b4494)" ( (binary_expression "pcVar15 + 0x1b4494" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x1b4494) + 0x2738" (pointer_expression "*(int *)(pcVar15 + 0x1b4494)" * (cast_expression "(int *)(pcVar15 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b4494)" ( (binary_expression "pcVar15 + 0x1b4494" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }" if (parenthesized_expression "(*(int *)(iStack_70 + 0x20) < 0)" ( (binary_expression "*(int *)(iStack_70 + 0x20) < 0" (pointer_expression "*(int *)(iStack_70 + 0x20)" * (cast_expression "(int *)(iStack_70 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 0x20)" ( (binary_expression "iStack_70 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar17 + lVar1;\n    }" { (expression_statement "lVar1 = *(longlong *)(iStack_70 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_70 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_70 + 8)" * (cast_expression "(longlong *)(iStack_70 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 8)" ( (binary_expression "iStack_70 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_6c = iStack_70;" (assignment_expression "*piStack_6c = iStack_70" (pointer_expression "*piStack_6c" * identifier) = identifier) ;) (return_statement "return uVar17 + lVar1;" return (binary_expression "uVar17 + lVar1" identifier + identifier) ;) })) (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 *)(pcVar15 + 0x1b4494) + 0x2728);" (assignment_expression "layout = (Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728)" identifier = (cast_expression "(Layout *)(*(int *)(pcVar15 + 0x1b4494) + 0x2728)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x1b4494) + 0x2728)" ( (binary_expression "*(int *)(pcVar15 + 0x1b4494) + 0x2728" (pointer_expression "*(int *)(pcVar15 + 0x1b4494)" * (cast_expression "(int *)(pcVar15 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b4494)" ( (binary_expression "pcVar15 + 0x1b4494" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0);" (assignment_expression "this_01 = (Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0)" identifier = (cast_expression "(Expression *)(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0)" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0)" ( (binary_expression "*(int *)(pcVar15 + 0x1b45dc) + -0x4fe0" (pointer_expression "*(int *)(pcVar15 + 0x1b45dc)" * (cast_expression "(int *)(pcVar15 + 0x1b45dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1b45dc)" ( (binary_expression "pcVar15 + 0x1b45dc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar15 + 0x1b45ec))();" (call_expression "(**(code **)(pcVar15 + 0x1b45ec))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar15 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar15 + 0x1b45ec)" * (cast_expression "(code **)(pcVar15 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1b45ec)" ( (binary_expression "pcVar15 + 0x1b45ec" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (ERROR "uVar17 = Expression::" (assignment_expression "uVar17 = Expression" identifier = identifier) : :) (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,\n                        false,(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,\n                        false,(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,\n                        false,(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) ))) ;) (return_statement "return uVar17;" return identifier ;) })) (return_statement "return uVar17;" return identifier ;) })))
(translation_unit "ulonglong FUN_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier 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 "undefined1 uVar16;" type_identifier identifier ;) (declaration "int 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_fffffec4;" type_identifier identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "char cStack_55;" primitive_type identifier ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x2718" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" else (compound_statement "{\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" { (expression_statement "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" { (expression_statement "unaff_s0 = 0x20;" (assignment_expression "unaff_s0 = 0x20" identifier = number_literal) ;) (expression_statement "iVar2 = 0x34;" (assignment_expression "iVar2 = 0x34" identifier = number_literal) ;) (labeled_statement "LAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" (assignment_expression "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" identifier = (call_expression "(*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" (parenthesized_expression "(*(code *)PTR_expected_segment_count_004359c8)" ( (pointer_expression "*(code *)PTR_expected_segment_count_004359c8" * (cast_expression "(code *)PTR_expected_segment_count_004359c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_2 + 4))" ( (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) )))) ;)) (return_statement "return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);" return (call_expression "(ulonglong)(uint)(unaff_s0 * iVar3 + iVar2)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(unaff_s0 * iVar3 + iVar2)" ( (binary_expression "unaff_s0 * iVar3 + iVar2" (binary_expression "unaff_s0 * iVar3" identifier * identifier) + identifier) ))) ;) })) (expression_statement "unaff_s0 = 0x38;" (assignment_expression "unaff_s0 = 0x38" identifier = number_literal) ;) (if_statement "if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" if (parenthesized_expression "(iVar2 == 0x40)" ( (binary_expression "iVar2 == 0x40" identifier == number_literal) )) (compound_statement "{\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" { (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_0027d9d0;" goto statement_identifier ;) })) }))) (expression_statement "puVar18 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" ( (binary_expression "PTR_DAT_0043226c + 0x21f0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x26f0" identifier + number_literal) ))) ;) (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 "pcVar19 = *(code **)(puVar18 + 0x1b4984);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1b4984)" identifier = (pointer_expression "*(code **)(puVar18 + 0x1b4984)" * (cast_expression "(code **)(puVar18 + 0x1b4984)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x1b4984)" ( (binary_expression "puVar18 + 0x1b4984" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec" identifier = (binary_expression "*(int *)(puVar18 + 0x1b4974) + -0x5cec" (pointer_expression "*(int *)(puVar18 + 0x1b4974)" * (cast_expression "(int *)(puVar18 + 0x1b4974)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1b4974)" ( (binary_expression "puVar18 + 0x1b4974" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);" (call_expression "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar18 + 0x1b482c) + 0x2730" (pointer_expression "*(int *)(puVar18 + 0x1b482c)" * (cast_expression "(int *)(puVar18 + 0x1b482c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x1b482c)" ( (binary_expression "puVar18 + 0x1b482c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5408))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b5408)" * (pointer_expression "*(code **)(pcVar19 + 0x1b5408)" * (cast_expression "(code **)(pcVar19 + 0x1b5408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b5408)" ( (binary_expression "pcVar19 + 0x1b5408" identifier + number_literal) ))))) )) (argument_list "(*puVar12,*(undefined4 *)(iVar3 + 4),0)" ( (pointer_expression "*puVar12" * identifier) , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" { (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" statement_identifier : (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b8da4))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b8da4)" * (pointer_expression "*(code **)(pcVar19 + 0x1b8da4)" * (cast_expression "(code **)(pcVar19 + 0x1b8da4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b8da4)" ( (binary_expression "pcVar19 + 0x1b8da4" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x221c)" ( (binary_expression "iVar9 + 0x221c" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));" (call_expression "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4))" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5310))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b5310)" * (pointer_expression "*(code **)(pcVar19 + 0x1b5310)" * (cast_expression "(code **)(pcVar19 + 0x1b5310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b5310)" ( (binary_expression "pcVar19 + 0x1b5310" identifier + number_literal) ))))) )) (argument_list "(uVar5,*(undefined4 *)(iVar3 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar4 = *(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 (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }" { (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 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      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }" { (expression_statement "bVar7 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar7 = *(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      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" else (compound_statement "{\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" { (expression_statement "bVar7 = (**(code **)(pcVar19 + 0x1b556c))();" (assignment_expression "bVar7 = (**(code **)(pcVar19 + 0x1b556c))()" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b556c))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b556c))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b556c)" * (pointer_expression "*(code **)(pcVar19 + 0x1b556c)" * (cast_expression "(code **)(pcVar19 + 0x1b556c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b556c)" ( (binary_expression "pcVar19 + 0x1b556c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" identifier = (binary_expression "bVar7 ^ 1" identifier ^ number_literal)) ;) }))) }) (else_clause "else {\n    bVar7 = uVar4 != 0x8000;\n  }" else (compound_statement "{\n    bVar7 = uVar4 != 0x8000;\n  }" { (expression_statement "bVar7 = uVar4 != 0x8000;" (assignment_expression "bVar7 = uVar4 != 0x8000" identifier = (binary_expression "uVar4 != 0x8000" identifier != number_literal)) ;) }))) (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) ))))) ;) (if_statement "if (bVar7 == 0) goto LAB_0027db94;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0027db94;" 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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b77f0))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b77f0))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b77f0)" * (pointer_expression "*(code **)(pcVar19 + 0x1b77f0)" * (cast_expression "(code **)(pcVar19 + 0x1b77f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b77f0)" ( (binary_expression "pcVar19 + 0x1b77f0" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*puVar17 = uVar5;" (assignment_expression "*puVar17 = uVar5" (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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" * (cast_expression "(int **)(pcVar19 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b516c)" ( (binary_expression "pcVar19 + 0x1b516c" identifier + number_literal) ))))) ;) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" * (cast_expression "(int **)(pcVar19 + 0x1b516c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b516c)" ( (binary_expression "pcVar19 + 0x1b516c" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" if (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" { (expression_statement "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(*piVar6 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(*piVar6 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar6 + 0xc) + 4)" ( (binary_expression "*(int *)(*piVar6 + 0xc) + 4" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x20)" ( (binary_expression "iVar3 == 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 (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" if (parenthesized_expression "(iVar3 == 0x40)" ( (binary_expression "iVar3 == 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 **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);" (call_expression "(**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b4950))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b4950)" * (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" * (cast_expression "(code **)(pcVar19 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b4950)" ( (binary_expression "pcVar19 + 0x1b4950" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" ( (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2720" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1b4950);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1b4950)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" * (cast_expression "(code **)(pcVar19 + 0x1b4950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b4950)" ( (binary_expression "pcVar19 + 0x1b4950" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar19 + 0x1b4940) + -0x5cec" (pointer_expression "*(int *)(pcVar19 + 0x1b4940)" * (cast_expression "(int *)(pcVar19 + 0x1b4940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4940)" ( (binary_expression "pcVar19 + 0x1b4940" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);" (call_expression "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2718" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" * (cast_expression "(int *)(pcVar19 + 0x1b47f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b47f8)" ( (binary_expression "pcVar19 + 0x1b47f8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\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    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }" { (expression_statement "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" * (cast_expression "(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" { (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b7d78);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b7d78)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1b7d78)" * (cast_expression "(code **)(pcVar20 + 0x1b7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b7d78)" ( (binary_expression "pcVar20 + 0x1b7d78" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar8 = *(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 (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" if (parenthesized_expression "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" { (return_statement "return *(ulonglong *)(piVar6[1] + 0x20);" return (pointer_expression "*(ulonglong *)(piVar6[1] + 0x20)" * (cast_expression "(ulonglong *)(piVar6[1] + 0x20)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6[1] + 0x20)" ( (binary_expression "piVar6[1] + 0x20" (subscript_expression "piVar6[1]" identifier [ number_literal ]) + number_literal) )))) ;) })) (labeled_statement "LAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);" statement_identifier : (return_statement "return CONCAT44(uVar4,uVar8);" return (call_expression "CONCAT44(uVar4,uVar8)" identifier (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;)) })) (goto_statement "goto LAB_0027ddcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" statement_identifier : (expression_statement "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" * (cast_expression "(int *)(pcVar20 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4760)" ( (binary_expression "pcVar20 + 0x1b4760" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x2718" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" statement_identifier : (expression_statement "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" ( (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" * (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x21f0" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x2700" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;" 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_0027dd98;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" * (cast_expression "(int *)(pcVar20 + 0x1b4618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4618)" ( (binary_expression "pcVar20 + 0x1b4618" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0027dd80;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" identifier = (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" ( (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" * (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" * (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4f8c)" ( (binary_expression "pcVar20 + 0x1b4f8c" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" { (expression_statement "uVar4 = *(uint *)(iVar3 + 0x4e80);" (assignment_expression "uVar4 = *(uint *)(iVar3 + 0x4e80)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e80)" * (cast_expression "(uint *)(iVar3 + 0x4e80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e80)" ( (binary_expression "iVar3 + 0x4e80" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x4e84);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x4e84)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x4e84)" * (cast_expression "(uint *)(iVar3 + 0x4e84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4e84)" ( (binary_expression "iVar3 + 0x4e84" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar3 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar3 + 0x5228)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x5228)" * (cast_expression "(uint *)(iVar3 + 0x5228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5228)" ( (binary_expression "iVar3 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar3 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar3 + 0x522c)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x522c)" * (cast_expression "(uint *)(iVar3 + 0x522c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x522c)" ( (binary_expression "iVar3 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "(uVar4 == 0 && uVar8 == 0)" ( (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar8 == 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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" else (compound_statement "{\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" { (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" if (parenthesized_expression "((uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8))))" ( (binary_expression "(uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))" (parenthesized_expression "(uVar13 < uVar4)" ( (binary_expression "uVar13 < uVar4" identifier < identifier) )) || (parenthesized_expression "((uVar4 == uVar13 && (uVar10 < uVar8)))" ( (parenthesized_expression "(uVar4 == uVar13 && (uVar10 < uVar8))" ( (binary_expression "uVar4 == uVar13 && (uVar10 < uVar8)" (binary_expression "uVar4 == uVar13" identifier == identifier) && (parenthesized_expression "(uVar10 < uVar8)" ( (binary_expression "uVar10 < uVar8" 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_0027dcd8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b4770);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b4770)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" * (cast_expression "(code **)(pcVar20 + 0x1b4770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1b4770)" ( (binary_expression "pcVar20 + 0x1b4770" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);" (assignment_expression "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" ( (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" * (cast_expression "(int *)(pcVar20 + 0x1b4760)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1b4760)" ( (binary_expression "pcVar20 + 0x1b4760" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;" statement_identifier : (expression_statement "pcVar19 = pcVar19 + -0x25c0;" (assignment_expression "pcVar19 = pcVar19 + -0x25c0" identifier = (binary_expression "pcVar19 + -0x25c0" identifier + number_literal)) ;)) (expression_statement "FUN_0027da40();" (call_expression "FUN_0027da40()" identifier (argument_list "()" ( ))) ;) (expression_statement "cStack_55 = (char)unaff_s0;" (assignment_expression "cStack_55 = (char)unaff_s0" identifier = (cast_expression "(char)unaff_s0" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }" if (parenthesized_expression "(piStack_6c != (int *)0x0)" ( (binary_expression "piStack_6c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piStack_6c = 0;\n  }" { (expression_statement "*piStack_6c = 0;" (assignment_expression "*piStack_6c = 0" (pointer_expression "*piStack_6c" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = (**(code **)(*piVar6 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar6 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar6 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar6 + 0xc))" ( (pointer_expression "**(code **)(*piVar6 + 0xc)" * (pointer_expression "*(code **)(*piVar6 + 0xc)" * (cast_expression "(code **)(*piVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * 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 ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "((cStack_55 != '\0') && (*piStack_6c == 0))" ( (binary_expression "(cStack_55 != '\0') && (*piStack_6c == 0)" (parenthesized_expression "(cStack_55 != '\0')" ( (binary_expression "cStack_55 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*piStack_6c == 0)" ( (binary_expression "*piStack_6c == 0" (pointer_expression "*piStack_6c" * identifier) == number_literal) ))) )) (compound_statement "{\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" while (parenthesized_expression "(uVar16 = (undefined1)param_4, iStack_70 == 0)" ( (comma_expression "uVar16 = (undefined1)param_4, iStack_70 == 0" (assignment_expression "uVar16 = (undefined1)param_4" identifier = (cast_expression "(undefined1)param_4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) , (binary_expression "iStack_70 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" { (expression_statement "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);" (assignment_expression "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" identifier = (call_expression "(**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" * (cast_expression "(code **)(pcVar19 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b45ec)" ( (binary_expression "pcVar19 + 0x1b45ec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" ( (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" * (cast_expression "(int *)(pcVar19 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x2738" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" * (cast_expression "(int *)(pcVar19 + 0x1b4494)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" if (parenthesized_expression "(*(int *)(iStack_70 + 0x20) < 0)" ( (binary_expression "*(int *)(iStack_70 + 0x20) < 0" (pointer_expression "*(int *)(iStack_70 + 0x20)" * (cast_expression "(int *)(iStack_70 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 0x20)" ( (binary_expression "iStack_70 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" { (expression_statement "lVar1 = *(longlong *)(iStack_70 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_70 + 8)" identifier = (pointer_expression "*(longlong *)(iStack_70 + 8)" * (cast_expression "(longlong *)(iStack_70 + 8)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_70 + 8)" ( (binary_expression "iStack_70 + 8" identifier + number_literal) ))))) ;) (expression_statement "*piStack_6c = iStack_70;" (assignment_expression "*piStack_6c = iStack_70" (pointer_expression "*piStack_6c" * 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 *)(pcVar19 + 0x1b4494) + '(';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" identifier = (binary_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" (cast_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(pcVar19 + 0x1b4494)" * (cast_expression "(undefined4 *)(pcVar19 + 0x1b4494)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b4494)" ( (binary_expression "pcVar19 + 0x1b4494" identifier + number_literal) ))))) + (char_literal "'('" ' character '))) ;) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" identifier = (cast_expression "(Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" ( (binary_expression "*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x1b45dc)" * (cast_expression "(int *)(pcVar19 + 0x1b45dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x1b45dc)" ( (binary_expression "pcVar19 + 0x1b45dc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x1b45ec))();" (call_expression "(**(code **)(pcVar19 + 0x1b45ec))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" ( (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" * (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" * (cast_expression "(code **)(pcVar19 + 0x1b45ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x1b45ec)" ( (binary_expression "pcVar19 + 0x1b45ec" 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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4" ( (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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (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 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 (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) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (return_statement return (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression IDENT * IDENT) + IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (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 ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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) ))) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 ' character '))) ;) (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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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_0027d980(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_0027d980") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  longlong lVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  Symbol_table *pSVar11;\n  undefined4 *puVar12;\n  uint uVar13;\n  Layout *pLVar14;\n  char cVar15;\n  undefined1 uVar16;\n  int 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_fffffec4;\n  int iStack_70;\n  int *piStack_6c;\n  char cStack_55;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }\n  puVar18 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);\n  puVar12 = (undefined4 *)&DAT_0000005c;\n  pcVar19 = *(code **)(puVar18 + 0x1b4984);\n  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;\n  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);\n  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);\n  if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }\n  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;\n  if (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }\n  iVar9 = *(int *)(pcVar19 + 0x1b47f8);\n  if (bVar7 == 0) goto LAB_0027db94;\n  puVar17 = (undefined4 *)puVar12[7];\n  if (puVar17 != (undefined4 *)0x0) {\n    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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  piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\n  }\n  if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }\n  pcVar20 = *(code **)(pcVar19 + 0x1b4950);\n  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;\n  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);\n  if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }\n  pcVar19 = *(code **)(pcVar20 + 0x1b4770);\n  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);\n  (*pcVar19)();\nLAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;\n  FUN_0027da40();\n  cStack_55 = (char)unaff_s0;\n  if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }\n  uVar21 = (**(code **)(*piVar6 + 0xc))();\n  if (unaff_s1 != (undefined1 *)0x0) {\n    *unaff_s1 = 1;\n  }\n  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (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 "undefined1 uVar16;" (type_identifier "undefined1") (identifier "uVar16") (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (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_fffffec4;" (type_identifier "uint") (identifier "in_stack_fffffec4") (; ";")) (declaration "int iStack_70;" (primitive_type "int") (identifier "iStack_70") (; ";")) (declaration "int *piStack_6c;" (primitive_type "int") (pointer_declarator "*piStack_6c" (* "*") (identifier "piStack_6c")) (; ";")) (declaration "char cStack_55;" (primitive_type "char") (identifier "cStack_55") (; ";")) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }\n  else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "PTR_DAT_0043226c + 0x2718" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x2718")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }\n    unaff_s0 = 0x38;\n    if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }\n  }" ({ "{") (expression_statement "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (identifier "iVar2") (= "=") (pointer_expression "**(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (iVar2 == 0x20) {\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0x20)" (( "(") (binary_expression "iVar2 == 0x20" (identifier "iVar2") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      unaff_s0 = 0x20;\n      iVar2 = 0x34;\nLAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));\n      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);\n    }" ({ "{") (expression_statement "unaff_s0 = 0x20;" (assignment_expression "unaff_s0 = 0x20" (identifier "unaff_s0") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar2 = 0x34;" (assignment_expression "iVar2 = 0x34" (identifier "iVar2") (= "=") (number_literal "0x34")) (; ";")) (labeled_statement "LAB_0027d9d0:\n      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" (statement_identifier "LAB_0027d9d0") (: ":") (expression_statement "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));" (assignment_expression "iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4))" (parenthesized_expression "(*(code *)PTR_expected_segment_count_004359c8)" (( "(") (pointer_expression "*(code *)PTR_expected_segment_count_004359c8" (* "*") (cast_expression "(code *)PTR_expected_segment_count_004359c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_expected_segment_count_004359c8"))) () ")")) (argument_list "(*(undefined4 *)(param_2 + 4))" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";"))) (return_statement "return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);" (return "return") (call_expression "(ulonglong)(uint)(unaff_s0 * iVar3 + iVar2)" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(unaff_s0 * iVar3 + iVar2)" (( "(") (binary_expression "unaff_s0 * iVar3 + iVar2" (binary_expression "unaff_s0 * iVar3" (identifier "unaff_s0") (* "*") (identifier "iVar3")) (+ "+") (identifier "iVar2")) () ")"))) (; ";")) (} "}"))) (expression_statement "unaff_s0 = 0x38;" (assignment_expression "unaff_s0 = 0x38" (identifier "unaff_s0") (= "=") (number_literal "0x38")) (; ";")) (if_statement "if (iVar2 == 0x40) {\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0x40)" (( "(") (binary_expression "iVar2 == 0x40" (identifier "iVar2") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      iVar2 = 0x40;\n      goto LAB_0027d9d0;\n    }" ({ "{") (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" (identifier "iVar2") (= "=") (number_literal "0x40")) (; ";")) (goto_statement "goto LAB_0027d9d0;" (goto "goto") (statement_identifier "LAB_0027d9d0") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar18 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004323c4" (identifier "puVar18") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x21f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x21f0")) (, ",") (number_literal "0x50e") (, ",") (binary_expression "PTR_DAT_0043226c + 0x26f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x26f0")) () ")"))) (; ";")) (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 "pcVar19 = *(code **)(puVar18 + 0x1b4984);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0x1b4984)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(puVar18 + 0x1b4984)" (* "*") (cast_expression "(code **)(puVar18 + 0x1b4984)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x1b4984)" (( "(") (binary_expression "puVar18 + 0x1b4984" (identifier "puVar18") (+ "+") (number_literal "0x1b4984")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar18 + 0x1b4974) + -0x5cec" (pointer_expression "*(int *)(puVar18 + 0x1b4974)" (* "*") (cast_expression "(int *)(puVar18 + 0x1b4974)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1b4974)" (( "(") (binary_expression "puVar18 + 0x1b4974" (identifier "puVar18") (+ "+") (number_literal "0x1b4974")) () ")")))) (+ "+") (number_literal "-0x5cec"))) (; ";")) (expression_statement "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);" (call_expression "(*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730)" (( "(") (identifier "iVar3") (, ",") (number_literal "0x5c") (, ",") (binary_expression "*(int *)(puVar18 + 0x1b482c) + 0x2730" (pointer_expression "*(int *)(puVar18 + 0x1b482c)" (* "*") (cast_expression "(int *)(puVar18 + 0x1b482c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x1b482c)" (( "(") (binary_expression "puVar18 + 0x1b482c" (identifier "puVar18") (+ "+") (number_literal "0x1b482c")) () ")")))) (+ "+") (number_literal "0x2730")) () ")"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5408))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b5408)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b5408)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b5408)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b5408)" (( "(") (binary_expression "pcVar19 + 0x1b5408" (identifier "pcVar19") (+ "+") (number_literal "0x1b5408")) () ")"))))) () ")")) (argument_list "(*puVar12,*(undefined4 *)(iVar3 + 4),0)" (( "(") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar9 = *(int *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 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 *)(pcVar19 + 0x1b47f8);\nLAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);\n    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));\n    return 0;\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b47f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b47f8)" (( "(") (binary_expression "pcVar19 + 0x1b47f8" (identifier "pcVar19") (+ "+") (number_literal "0x1b47f8")) () ")"))))) (; ";")) (labeled_statement "LAB_0027db94:\n    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" (statement_identifier "LAB_0027db94") (: ":") (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b8da4))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b8da4)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b8da4)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b8da4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b8da4)" (( "(") (binary_expression "pcVar19 + 0x1b8da4" (identifier "pcVar19") (+ "+") (number_literal "0x1b8da4")) () ")"))))) () ")")) (argument_list "(iVar9 + 0x221c)" (( "(") (binary_expression "iVar9 + 0x221c" (identifier "iVar9") (+ "+") (number_literal "0x221c")) () ")")))) (; ";"))) (expression_statement "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));" (call_expression "(**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4))" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b5310))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b5310)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b5310)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b5310)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b5310)" (( "(") (binary_expression "pcVar19 + 0x1b5310" (identifier "pcVar19") (+ "+") (number_literal "0x1b5310")) () ")"))))) () ")")) (argument_list "(uVar5,*(undefined4 *)(iVar3 + 4))" (( "(") (identifier "uVar5") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000" (identifier "uVar4") (= "=") (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 (uVar4 == 0) {\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }\n  else {\n    bVar7 = uVar4 != 0x8000;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }\n  }" ({ "{") (if_statement "if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {\n      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }\n    else {\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 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      bVar7 = *(int *)(iVar2 + 0xc) != 0;\n    }" ({ "{") (expression_statement "bVar7 = *(int *)(iVar2 + 0xc) != 0;" (assignment_expression "bVar7 = *(int *)(iVar2 + 0xc) != 0" (identifier "bVar7") (= "=") (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      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" (else "else") (compound_statement "{\n      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();\n      bVar7 = bVar7 ^ 1;\n    }" ({ "{") (expression_statement "bVar7 = (**(code **)(pcVar19 + 0x1b556c))();" (assignment_expression "bVar7 = (**(code **)(pcVar19 + 0x1b556c))()" (identifier "bVar7") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b556c))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b556c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b556c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b556c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b556c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b556c)" (( "(") (binary_expression "pcVar19 + 0x1b556c" (identifier "pcVar19") (+ "+") (number_literal "0x1b556c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" (identifier "bVar7") (= "=") (binary_expression "bVar7 ^ 1" (identifier "bVar7") (^ "^") (number_literal "1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    bVar7 = uVar4 != 0x8000;\n  }" (else "else") (compound_statement "{\n    bVar7 = uVar4 != 0x8000;\n  }" ({ "{") (expression_statement "bVar7 = uVar4 != 0x8000;" (assignment_expression "bVar7 = uVar4 != 0x8000" (identifier "bVar7") (= "=") (binary_expression "uVar4 != 0x8000" (identifier "uVar4") (!= "!=") (number_literal "0x8000"))) (; ";")) (} "}")))) (expression_statement "iVar9 = *(int *)(pcVar19 + 0x1b47f8);" (assignment_expression "iVar9 = *(int *)(pcVar19 + 0x1b47f8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b47f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b47f8)" (( "(") (binary_expression "pcVar19 + 0x1b47f8" (identifier "pcVar19") (+ "+") (number_literal "0x1b47f8")) () ")"))))) (; ";")) (if_statement "if (bVar7 == 0) goto LAB_0027db94;" (if "if") (parenthesized_expression "(bVar7 == 0)" (( "(") (binary_expression "bVar7 == 0" (identifier "bVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0027db94;" (goto "goto") (statement_identifier "LAB_0027db94") (; ";"))) (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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\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    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);\n    *puVar17 = uVar5;\n  }" ({ "{") (expression_statement "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);" (assignment_expression "uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b77f0))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b77f0))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b77f0)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b77f0)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b77f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b77f0)" (( "(") (binary_expression "pcVar19 + 0x1b77f0" (identifier "pcVar19") (+ "+") (number_literal "0x1b77f0")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "*puVar17 = uVar5;" (assignment_expression "*puVar17 = uVar5" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1b516c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b516c)" (( "(") (binary_expression "pcVar19 + 0x1b516c" (identifier "pcVar19") (+ "+") (number_literal "0x1b516c")) () ")"))))) (; ";")) (if_statement "if ((byte *)puVar12[0xb] != (byte *)0x0) {\n    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);\n    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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    piVar6 = *(int **)(pcVar19 + 0x1b516c);\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 "piVar6 = *(int **)(pcVar19 + 0x1b516c);" (assignment_expression "piVar6 = *(int **)(pcVar19 + 0x1b516c)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar19 + 0x1b516c)" (* "*") (cast_expression "(int **)(pcVar19 + 0x1b516c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b516c)" (( "(") (binary_expression "pcVar19 + 0x1b516c" (identifier "pcVar19") (+ "+") (number_literal "0x1b516c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*piVar6 + 0xc) != 0) {\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" (if "if") (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" (* "*") (cast_expression "(int *)(*piVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0xc)" (( "(") (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);\n    if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }\n    if (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }\n    (**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);\n  }" ({ "{") (expression_statement "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(*(int *)(*piVar6 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(*piVar6 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*piVar6 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*piVar6 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(*piVar6 + 0xc) + 4" (pointer_expression "*(int *)(*piVar6 + 0xc)" (* "*") (cast_expression "(int *)(*piVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0xc)" (( "(") (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (iVar3 == 0x20) {\n      return (ulonglong)*(uint *)(iVar2 + 0x30);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0x20)" (( "(") (binary_expression "iVar3 == 0x20" (identifier "iVar3") (== "==") (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 (iVar3 == 0x40) {\n      return *(ulonglong *)(iVar2 + 0x30);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0x40)" (( "(") (binary_expression "iVar3 == 0x40" (identifier "iVar3") (== "==") (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 **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);" (call_expression "(**(code **)(pcVar19 + 0x1b4950))\n              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b4950))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b4950)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b4950)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4950)" (( "(") (binary_expression "pcVar19 + 0x1b4950" (identifier "pcVar19") (+ "+") (number_literal "0x1b4950")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b47f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b47f8)" (( "(") (binary_expression "pcVar19 + 0x1b47f8" (identifier "pcVar19") (+ "+") (number_literal "0x1b47f8")) () ")")))) (+ "+") (number_literal "0x21f0")) (, ",") (number_literal "0xf9") (, ",") (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2720" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b47f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b47f8)" (( "(") (binary_expression "pcVar19 + 0x1b47f8" (identifier "pcVar19") (+ "+") (number_literal "0x1b47f8")) () ")")))) (+ "+") (number_literal "0x2720")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x1b4950);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x1b4950)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar19 + 0x1b4950)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b4950)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4950)" (( "(") (binary_expression "pcVar19 + 0x1b4950" (identifier "pcVar19") (+ "+") (number_literal "0x1b4950")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;" (assignment_expression "iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec" (identifier "iVar2") (= "=") (binary_expression "*(int *)(pcVar19 + 0x1b4940) + -0x5cec" (pointer_expression "*(int *)(pcVar19 + 0x1b4940)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b4940)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4940)" (( "(") (binary_expression "pcVar19 + 0x1b4940" (identifier "pcVar19") (+ "+") (number_literal "0x1b4940")) () ")")))) (+ "+") (number_literal "-0x5cec"))) (; ";")) (expression_statement "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);" (call_expression "(*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718)" (( "(") (identifier "iVar2") (, ",") (number_literal "0x69") (, ",") (binary_expression "*(int *)(pcVar19 + 0x1b47f8) + 0x2718" (pointer_expression "*(int *)(pcVar19 + 0x1b47f8)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b47f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b47f8)" (( "(") (binary_expression "pcVar19 + 0x1b47f8" (identifier "pcVar19") (+ "+") (number_literal "0x1b47f8")) () ")")))) (+ "+") (number_literal "0x2718")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 4) == 0) {\n    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }\n  else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\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    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    iVar2 = *(int *)(pcVar20 + 0x1b4618);\n    if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }\nLAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);\nLAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);\n  }" ({ "{") (expression_statement "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (* "*") (cast_expression "(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" (* "*") (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" (* "*") (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4f8c)" (( "(") (binary_expression "pcVar20 + 0x1b4f8c" (identifier "pcVar20") (+ "+") (number_literal "0x1b4f8c")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4618)" (( "(") (binary_expression "pcVar20 + 0x1b4618" (identifier "pcVar20") (+ "+") (number_literal "0x1b4618")) () ")"))))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);\n      if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }\n      goto LAB_0027ddcc;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (* "*") (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (( "(") (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" (* "*") (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" (* "*") (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4f8c)" (( "(") (binary_expression "pcVar20 + 0x1b4f8c" (identifier "pcVar20") (+ "+") (number_literal "0x1b4f8c")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b7d78);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b7d78)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(pcVar20 + 0x1b7d78)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1b7d78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b7d78)" (( "(") (binary_expression "pcVar20 + 0x1b7d78" (identifier "pcVar20") (+ "+") (number_literal "0x1b7d78")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = *(uint *)(iVar2 + 0x5228);\n        uVar8 = *(uint *)(iVar2 + 0x522c);\n        if (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }\nLAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);\n      }" ({ "{") (expression_statement "uVar4 = *(uint *)(iVar2 + 0x5228);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x5228)" (identifier "uVar4") (= "=") (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 "uVar8 = *(uint *)(iVar2 + 0x522c);" (assignment_expression "uVar8 = *(uint *)(iVar2 + 0x522c)" (identifier "uVar8") (= "=") (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 (uVar4 == 0 && uVar8 == 0) {\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" (if "if") (parenthesized_expression "(uVar4 == 0 && uVar8 == 0)" (( "(") (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          return *(ulonglong *)(piVar6[1] + 0x20);\n        }" ({ "{") (return_statement "return *(ulonglong *)(piVar6[1] + 0x20);" (return "return") (pointer_expression "*(ulonglong *)(piVar6[1] + 0x20)" (* "*") (cast_expression "(ulonglong *)(piVar6[1] + 0x20)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6[1] + 0x20)" (( "(") (binary_expression "piVar6[1] + 0x20" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0027dcd8:\n        return CONCAT44(uVar4,uVar8);" (statement_identifier "LAB_0027dcd8") (: ":") (return_statement "return CONCAT44(uVar4,uVar8);" (return "return") (call_expression "CONCAT44(uVar4,uVar8)" (identifier "CONCAT44") (argument_list "(uVar4,uVar8)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar8") () ")"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_0027ddcc;" (goto "goto") (statement_identifier "LAB_0027ddcc") (; ";")) (} "}"))) (labeled_statement "LAB_0027dd80:\n    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" (statement_identifier "LAB_0027dd80") (: ":") (expression_statement "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" (( "(") (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" (* "*") (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1b4770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4770)" (( "(") (binary_expression "pcVar20 + 0x1b4770" (identifier "pcVar20") (+ "+") (number_literal "0x1b4770")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718)" (( "(") (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4760)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4760)" (( "(") (binary_expression "pcVar20 + 0x1b4760" (identifier "pcVar20") (+ "+") (number_literal "0x1b4760")) () ")")))) (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x2718" (identifier "iVar2") (+ "+") (number_literal "0x2718")) () ")"))) (; ";"))) (labeled_statement "LAB_0027dd98:\n    (**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" (statement_identifier "LAB_0027dd98") (: ":") (expression_statement "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);" (call_expression "(**(code **)(pcVar20 + 0x1b4770))\n              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1b4770))" (( "(") (pointer_expression "**(code **)(pcVar20 + 0x1b4770)" (* "*") (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1b4770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4770)" (( "(") (binary_expression "pcVar20 + 0x1b4770" (identifier "pcVar20") (+ "+") (number_literal "0x1b4770")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700)" (( "(") (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x21f0" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4618)" (( "(") (binary_expression "pcVar20 + 0x1b4618" (identifier "pcVar20") (+ "+") (number_literal "0x1b4618")) () ")")))) (+ "+") (number_literal "0x21f0")) (, ",") (number_literal "0x44a") (, ",") (binary_expression "*(int *)(pcVar20 + 0x1b4618) + 0x2700" (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4618)" (( "(") (binary_expression "pcVar20 + 0x1b4618" (identifier "pcVar20") (+ "+") (number_literal "0x1b4618")) () ")")))) (+ "+") (number_literal "0x2700")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;\n    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);\n    if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }\n    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);\n    if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;" (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_0027dd98;" (goto "goto") (statement_identifier "LAB_0027dd98") (; ";"))) (expression_statement "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);" (assignment_expression "iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 0xc" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" (* "*") (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" (* "*") (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4f8c)" (( "(") (binary_expression "pcVar20 + 0x1b4f8c" (identifier "pcVar20") (+ "+") (number_literal "0x1b4f8c")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = *(int *)(pcVar20 + 0x1b4618);\n      goto LAB_0027dd80;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(pcVar20 + 0x1b4618);" (assignment_expression "iVar2 = *(int *)(pcVar20 + 0x1b4618)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar20 + 0x1b4618)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4618)" (( "(") (binary_expression "pcVar20 + 0x1b4618" (identifier "pcVar20") (+ "+") (number_literal "0x1b4618")) () ")"))))) (; ";")) (goto_statement "goto LAB_0027dd80;" (goto "goto") (statement_identifier "LAB_0027dd80") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);" (assignment_expression "iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (* "*") (cast_expression "(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar20 + 0x1b4f8c) + 8)" (( "(") (binary_expression "**(int **)(pcVar20 + 0x1b4f8c) + 8" (pointer_expression "**(int **)(pcVar20 + 0x1b4f8c)" (* "*") (pointer_expression "*(int **)(pcVar20 + 0x1b4f8c)" (* "*") (cast_expression "(int **)(pcVar20 + 0x1b4f8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4f8c)" (( "(") (binary_expression "pcVar20 + 0x1b4f8c" (identifier "pcVar20") (+ "+") (number_literal "0x1b4f8c")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = *(uint *)(iVar3 + 0x4e80);\n      uVar8 = *(uint *)(iVar3 + 0x4e84);\n      uVar13 = *(uint *)(iVar3 + 0x5228);\n      uVar10 = *(uint *)(iVar3 + 0x522c);\n      if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }\n      goto LAB_0027dcd8;\n    }" ({ "{") (expression_statement "uVar4 = *(uint *)(iVar3 + 0x4e80);" (assignment_expression "uVar4 = *(uint *)(iVar3 + 0x4e80)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x4e80)" (* "*") (cast_expression "(uint *)(iVar3 + 0x4e80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4e80)" (( "(") (binary_expression "iVar3 + 0x4e80" (identifier "iVar3") (+ "+") (number_literal "0x4e80")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar3 + 0x4e84);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0x4e84)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x4e84)" (* "*") (cast_expression "(uint *)(iVar3 + 0x4e84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4e84)" (( "(") (binary_expression "iVar3 + 0x4e84" (identifier "iVar3") (+ "+") (number_literal "0x4e84")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(iVar3 + 0x5228);" (assignment_expression "uVar13 = *(uint *)(iVar3 + 0x5228)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x5228)" (* "*") (cast_expression "(uint *)(iVar3 + 0x5228)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5228)" (( "(") (binary_expression "iVar3 + 0x5228" (identifier "iVar3") (+ "+") (number_literal "0x5228")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar3 + 0x522c);" (assignment_expression "uVar10 = *(uint *)(iVar3 + 0x522c)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x522c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x522c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x522c)" (( "(") (binary_expression "iVar3 + 0x522c" (identifier "iVar3") (+ "+") (number_literal "0x522c")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0 && uVar8 == 0) {\n        iVar2 = *(int *)(iVar2 + 4);\n        if (uVar13 == 0 && uVar10 == 0) {\n          uVar13 = *(uint *)(iVar2 + 0x20);\n          uVar10 = *(uint *)(iVar2 + 0x24);\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "(uVar4 == 0 && uVar8 == 0)" (( "(") (binary_expression "uVar4 == 0 && uVar8 == 0" (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }\n        else {\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(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 "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x28)" (identifier "uVar4") (= "=") (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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(uint *)(iVar2 + 0x2c)" (identifier "uVar8") (= "=") (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          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" (else "else") (compound_statement "{\n          uVar4 = *(uint *)(iVar2 + 0x28);\n          uVar8 = *(uint *)(iVar2 + 0x2c);\n        }" ({ "{") (expression_statement "uVar4 = *(uint *)(iVar2 + 0x28);" (assignment_expression "uVar4 = *(uint *)(iVar2 + 0x28)" (identifier "uVar4") (= "=") (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 "uVar8 = *(uint *)(iVar2 + 0x2c);" (assignment_expression "uVar8 = *(uint *)(iVar2 + 0x2c)" (identifier "uVar8") (= "=") (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 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {\n        return CONCAT44(uVar13,uVar10);\n      }" (if "if") (parenthesized_expression "((uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8))))" (( "(") (binary_expression "(uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))" (parenthesized_expression "(uVar13 < uVar4)" (( "(") (binary_expression "uVar13 < uVar4" (identifier "uVar13") (< "<") (identifier "uVar4")) () ")")) (|| "||") (parenthesized_expression "((uVar4 == uVar13 && (uVar10 < uVar8)))" (( "(") (parenthesized_expression "(uVar4 == uVar13 && (uVar10 < uVar8))" (( "(") (binary_expression "uVar4 == uVar13 && (uVar10 < uVar8)" (binary_expression "uVar4 == uVar13" (identifier "uVar4") (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(uVar10 < uVar8)" (( "(") (binary_expression "uVar10 < uVar8" (identifier "uVar10") (< "<") (identifier "uVar8")) () ")"))) () ")")) () ")"))) () ")")) (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_0027dcd8;" (goto "goto") (statement_identifier "LAB_0027dcd8") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0x1b4770);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0x1b4770)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(pcVar20 + 0x1b4770)" (* "*") (cast_expression "(code **)(pcVar20 + 0x1b4770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4770)" (( "(") (binary_expression "pcVar20 + 0x1b4770" (identifier "pcVar20") (+ "+") (number_literal "0x1b4770")) () ")"))))) (; ";")) (expression_statement "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);" (assignment_expression "piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar20 + 0x1b4760) + -0x5cec)" (( "(") (binary_expression "*(int *)(pcVar20 + 0x1b4760) + -0x5cec" (pointer_expression "*(int *)(pcVar20 + 0x1b4760)" (* "*") (cast_expression "(int *)(pcVar20 + 0x1b4760)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x1b4760)" (( "(") (binary_expression "pcVar20 + 0x1b4760" (identifier "pcVar20") (+ "+") (number_literal "0x1b4760")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0027ddcc:\n  pcVar19 = pcVar19 + -0x25c0;" (statement_identifier "LAB_0027ddcc") (: ":") (expression_statement "pcVar19 = pcVar19 + -0x25c0;" (assignment_expression "pcVar19 = pcVar19 + -0x25c0" (identifier "pcVar19") (= "=") (binary_expression "pcVar19 + -0x25c0" (identifier "pcVar19") (+ "+") (number_literal "-0x25c0"))) (; ";"))) (expression_statement "FUN_0027da40();" (call_expression "FUN_0027da40()" (identifier "FUN_0027da40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cStack_55 = (char)unaff_s0;" (assignment_expression "cStack_55 = (char)unaff_s0" (identifier "cStack_55") (= "=") (cast_expression "(char)unaff_s0" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "unaff_s0"))) (; ";")) (if_statement "if (piStack_6c != (int *)0x0) {\n    *piStack_6c = 0;\n  }" (if "if") (parenthesized_expression "(piStack_6c != (int *)0x0)" (( "(") (binary_expression "piStack_6c != (int *)0x0" (identifier "piStack_6c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *piStack_6c = 0;\n  }" ({ "{") (expression_statement "*piStack_6c = 0;" (assignment_expression "*piStack_6c = 0" (pointer_expression "*piStack_6c" (* "*") (identifier "piStack_6c")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar21 = (**(code **)(*piVar6 + 0xc))();" (assignment_expression "uVar21 = (**(code **)(*piVar6 + 0xc))()" (identifier "uVar21") (= "=") (call_expression "(**(code **)(*piVar6 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar6 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar6 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar6 + 0xc)" (* "*") (cast_expression "(code **)(*piVar6 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar6 + 0xc)" (( "(") (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (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 ((cStack_55 != '\0') && (*piStack_6c == 0)) {\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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 "((cStack_55 != '\0') && (*piStack_6c == 0))" (( "(") (binary_expression "(cStack_55 != '\0') && (*piStack_6c == 0)" (parenthesized_expression "(cStack_55 != '\0')" (( "(") (binary_expression "cStack_55 != '\0'" (identifier "cStack_55") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*piStack_6c == 0)" (( "(") (binary_expression "*piStack_6c == 0" (pointer_expression "*piStack_6c" (* "*") (identifier "piStack_6c")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }\n    if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }\n    pLVar14 = (Layout *)&DAT_000000c5;\n    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';\n    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);\n    (**(code **)(pcVar19 + 0x1b45ec))();\n    uVar21 = gold::Expression::eval_maybe_dot\n                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,\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)param_4, iStack_70 == 0) {\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" (while "while") (parenthesized_expression "(uVar16 = (undefined1)param_4, iStack_70 == 0)" (( "(") (comma_expression "uVar16 = (undefined1)param_4, iStack_70 == 0" (assignment_expression "uVar16 = (undefined1)param_4" (identifier "uVar16") (= "=") (cast_expression "(undefined1)param_4" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_4"))) (, ",") (binary_expression "iStack_70 == 0" (identifier "iStack_70") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);\n    }" ({ "{") (expression_statement "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);" (assignment_expression "uVar21 = (**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(pcVar19 + 0x1b45ec))\n                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b45ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b45ec)" (( "(") (binary_expression "pcVar19 + 0x1b45ec" (identifier "pcVar19") (+ "+") (number_literal "0x1b45ec")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,\n                          *(int *)(pcVar19 + 0x1b4494) + 0x2738)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x21f0" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b4494)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4494)" (( "(") (binary_expression "pcVar19 + 0x1b4494" (identifier "pcVar19") (+ "+") (number_literal "0x1b4494")) () ")")))) (+ "+") (number_literal "0x21f0")) (, ",") (number_literal "0xa2") (, ",") (binary_expression "*(int *)(pcVar19 + 0x1b4494) + 0x2738" (pointer_expression "*(int *)(pcVar19 + 0x1b4494)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b4494)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4494)" (( "(") (binary_expression "pcVar19 + 0x1b4494" (identifier "pcVar19") (+ "+") (number_literal "0x1b4494")) () ")")))) (+ "+") (number_literal "0x2738")) () ")")))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iStack_70 + 0x20) < 0) {\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" (if "if") (parenthesized_expression "(*(int *)(iStack_70 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iStack_70 + 0x20) < 0" (pointer_expression "*(int *)(iStack_70 + 0x20)" (* "*") (cast_expression "(int *)(iStack_70 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_70 + 0x20)" (( "(") (binary_expression "iStack_70 + 0x20" (identifier "iStack_70") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar1 = *(longlong *)(iStack_70 + 8);\n      *piStack_6c = iStack_70;\n      return uVar21 + lVar1;\n    }" ({ "{") (expression_statement "lVar1 = *(longlong *)(iStack_70 + 8);" (assignment_expression "lVar1 = *(longlong *)(iStack_70 + 8)" (identifier "lVar1") (= "=") (pointer_expression "*(longlong *)(iStack_70 + 8)" (* "*") (cast_expression "(longlong *)(iStack_70 + 8)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_70 + 8)" (( "(") (binary_expression "iStack_70 + 8" (identifier "iStack_70") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*piStack_6c = iStack_70;" (assignment_expression "*piStack_6c = iStack_70" (pointer_expression "*piStack_6c" (* "*") (identifier "piStack_6c")) (= "=") (identifier "iStack_70")) (; ";")) (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 *)(pcVar19 + 0x1b4494) + '(';" (assignment_expression "cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" (identifier "cVar15") (= "=") (binary_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494) + '('" (cast_expression "(char)*(undefined4 *)(pcVar19 + 0x1b4494)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined4 *)(pcVar19 + 0x1b4494)" (* "*") (cast_expression "(undefined4 *)(pcVar19 + 0x1b4494)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b4494)" (( "(") (binary_expression "pcVar19 + 0x1b4494" (identifier "pcVar19") (+ "+") (number_literal "0x1b4494")) () ")"))))) (+ "+") (char_literal "'('" (' "'") (character "(") (' "'")))) (; ";")) (expression_statement "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);" (assignment_expression "pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" (identifier "pSVar11") (= "=") (cast_expression "(Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" (( "(") (type_descriptor "Symbol_table *" (type_identifier "Symbol_table") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x1b45dc)" (* "*") (cast_expression "(int *)(pcVar19 + 0x1b45dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x1b45dc)" (( "(") (binary_expression "pcVar19 + 0x1b45dc" (identifier "pcVar19") (+ "+") (number_literal "0x1b45dc")) () ")")))) (+ "+") (number_literal "-0x4fe0")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x1b45ec))();" (call_expression "(**(code **)(pcVar19 + 0x1b45ec))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x1b45ec))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x1b45ec)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x1b45ec)" (* "*") (cast_expression "(code **)(pcVar19 + 0x1b45ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x1b45ec)" (( "(") (binary_expression "pcVar19 + 0x1b45ec" (identifier "pcVar19") (+ "+") (number_literal "0x1b45ec")) () ")"))))) () ")")) (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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4,\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_fffffec4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "in_stack_fffffec4")) (, ",") (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") (; ";")) (} "}")))

/* 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 value(Sizeof_headers_expression * this, Expression_eval_info *
   eei) */

uint64_t __thiscall
gold::type_1::function_1(type_1 *this,type_2 *eei)

{
  type_3 var_24;
  int var_3;
  int var_5;
  type_4 var_9;
  type_5 uVar5;
  int *piVar6;
  type_6 var_10;
  type_4 var_14;
  int var_8;
  type_4 var_17;
  type_7 *var_13;
  type_8 *this_01;
  type_5 *puVar11;
  type_4 var_16;
  type_9 *symtab;
  type_10 *layout;
  type_5 in_a3;
  type_11 check_assertions;
  int var_4;
  type_11 *var_20;
  type_5 *var_11;
  type_12 *var_6;
  type_13 *var_7;
  type_13 *var_12;
  uint64_t var_23;
  int var_22;
  int *var_19;
  char var_21;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {
    (*(type_13 *)PTR_do_gold_unreachable_004323c4)
              (var_1 + -0x5cec,0x69,var_2 + 0x2718);
  }
  else {
    var_3 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (var_3 == 0x20) {
      var_4 = 0x20;
      var_3 = 0x34;
LAB_0027d9d0:
      var_5 = (*(type_13 *)PTR_expected_segment_count_004359c8)(eei->layout);
      return (uint64_t)(type_4)(var_4 * var_5 + var_3);
    }
    var_4 = 0x38;
    if (var_3 == 0x40) {
      var_3 = 0x40;
      goto LAB_0027d9d0;
    }
  }
  var_6 = PTR_do_gold_unreachable_004323c4;
  (*(type_13 *)PTR_do_gold_unreachable_004323c4)
            (var_2 + 0x21f0,0x50e,var_2 + 0x26f0);
  puVar11 = (type_5 *)&DAT_0000005c;
  var_7 = *(type_13 **)(var_6 + 0x1b4984);
  var_5 = *(int *)(var_6 + 0x1b4974) + -0x5cec;
  (*var_7)(var_5,0x5c,*(int *)(var_6 + 0x1b482c) + 0x2730);
  var_3 = (**(type_13 **)(var_7 + 0x1b5408))(*puVar11,*(type_5 *)(var_5 + 4),0);
  if (var_3 == 0) {
    var_8 = *(int *)(var_7 + 0x1b47f8);
LAB_0027db94:
    uVar5 = (**(type_13 **)(var_7 + 0x1b8da4))(var_8 + 0x221c);
    (**(type_13 **)(var_7 + 0x1b5310))(uVar5,*(type_5 *)(var_5 + 4));
    return 0;
  }
  var_9 = *(type_4 *)(var_3 + 0x28) & 0xe000;
  if (var_9 == 0) {
    if ((int)(*(type_4 *)(var_3 + 0x28) << 0x1d) < 0) {
      var_10 = *(int *)(var_3 + 0xc) != 0;
    }
    else {
      var_10 = (**(type_13 **)(var_7 + 0x1b556c))();
      var_10 = var_10 ^ 1;
    }
  }
  else {
    var_10 = var_9 != 0x8000;
  }
  var_8 = *(int *)(var_7 + 0x1b47f8);
  if (var_10 == 0) goto LAB_0027db94;
  var_11 = (type_5 *)puVar11[7];
  if (var_11 != (type_5 *)0x0) {
    uVar5 = (**(type_13 **)(var_7 + 0x1b77f0))(var_3);
    *var_11 = uVar5;
  }
  if ((type_4 *)puVar11[9] != (type_4 *)0x0) {
    *(type_4 *)puVar11[9] = *(type_4 *)(var_3 + 0x28) >> 0x1c;
  }
  if ((type_4 *)puVar11[10] != (type_4 *)0x0) {
    *(type_4 *)puVar11[10] = (type_4)(*(int *)(var_3 + 0x28) << 8) >> 0x1e;
  }
  piVar6 = *(int **)(var_7 + 0x1b516c);
  if ((type_6 *)puVar11[0xb] != (type_6 *)0x0) {
    *(type_6 *)puVar11[0xb] = (type_6)((type_4)(*(int *)(var_3 + 0x28) << 10) >> 0x1a);
    piVar6 = *(int **)(var_7 + 0x1b516c);
  }
  if (*(int *)(*piVar6 + 0xc) != 0) {
    var_5 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);
    if (var_5 == 0x20) {
      return (uint64_t)*(type_4 *)(var_3 + 0x30);
    }
    if (var_5 == 0x40) {
      return *(uint64_t *)(var_3 + 0x30);
    }
    (**(type_13 **)(var_7 + 0x1b4950))
              (*(int *)(var_7 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(var_7 + 0x1b47f8) + 0x2720);
  }
  var_12 = *(type_13 **)(var_7 + 0x1b4950);
  var_3 = *(int *)(var_7 + 0x1b4940) + -0x5cec;
  (*var_12)(var_3,0x69,*(int *)(var_7 + 0x1b47f8) + 0x2718);
  if (*(int *)(var_3 + 4) == 0) {
    var_13 = *(type_7 **)(**(int **)(var_12 + 0x1b4f8c) + 0xc);
    var_3 = *(int *)(var_12 + 0x1b4618);
    if (var_13 != (type_7 *)0x0) {
      var_3 = *(int *)(**(int **)(var_12 + 0x1b4f8c) + 8);
      var_7 = *(type_13 **)(var_12 + 0x1b7d78);
      if (var_3 != 0) {
        var_9 = *(type_4 *)(var_3 + 0x5228);
        var_14 = *(type_4 *)(var_3 + 0x522c);
        if (var_9 == 0 && var_14 == 0) {
          return *(uint64_t *)(*(int *)(var_13 + 4) + 0x20);
        }
LAB_0027dcd8:
        return var_15(var_9,var_14);
      }
      goto LAB_0027ddcc;
    }
LAB_0027dd80:
    (**(type_13 **)(var_12 + 0x1b4770))(*(int *)(var_12 + 0x1b4760) + -0x5cec,0x69,var_3 + 0x2718);
LAB_0027dd98:
    (**(type_13 **)(var_12 + 0x1b4770))
              (*(int *)(var_12 + 0x1b4618) + 0x21f0,0x44a,*(int *)(var_12 + 0x1b4618) + 0x2700);
  }
  else {
    if (*(int *)(var_3 + 4) != 1) goto LAB_0027dd98;
    var_3 = *(int *)(**(int **)(var_12 + 0x1b4f8c) + 0xc);
    if (var_3 == 0) {
      var_3 = *(int *)(var_12 + 0x1b4618);
      goto LAB_0027dd80;
    }
    var_5 = *(int *)(**(int **)(var_12 + 0x1b4f8c) + 8);
    if (var_5 != 0) {
      var_9 = *(type_4 *)(var_5 + 0x4e80);
      var_14 = *(type_4 *)(var_5 + 0x4e84);
      var_16 = *(type_4 *)(var_5 + 0x5228);
      var_17 = *(type_4 *)(var_5 + 0x522c);
      if (var_9 == 0 && var_14 == 0) {
        var_3 = *(int *)(var_3 + 4);
        if (var_16 == 0 && var_17 == 0) {
          var_16 = *(type_4 *)(var_3 + 0x20);
          var_17 = *(type_4 *)(var_3 + 0x24);
          var_9 = *(type_4 *)(var_3 + 0x28);
          var_14 = *(type_4 *)(var_3 + 0x2c);
        }
        else {
          var_9 = *(type_4 *)(var_3 + 0x28);
          var_14 = *(type_4 *)(var_3 + 0x2c);
        }
      }
      else if (var_16 == 0 && var_17 == 0) {
        var_16 = *(type_4 *)(*(int *)(var_3 + 4) + 0x20);
        var_17 = *(type_4 *)(*(int *)(var_3 + 4) + 0x24);
      }
      if ((var_16 < var_9) || ((var_9 == var_16 && (var_17 < var_14)))) {
        return var_15(var_16,var_17);
      }
      goto LAB_0027dcd8;
    }
  }
  var_7 = *(type_13 **)(var_12 + 0x1b4770);
  var_13 = (type_7 *)(*(int *)(var_12 + 0x1b4760) + -0x5cec);
  (*var_7)();
LAB_0027ddcc:
  var_7 = var_7 + -0x25c0;
  Target::var_18(var_13);
  var_21 = (char)var_4;
  if (var_19 != (int *)0x0) {
    *var_19 = 0;
  }
  var_23 = (**(type_13 **)(*(int *)var_13 + 0xc))();
  if (var_20 != (type_11 *)0x0) {
    *var_20 = 1;
  }
  if ((var_21 != '\0') && (*var_19 == 0)) {
    while (check_assertions = (type_11)in_a3, var_22 == 0) {
      var_23 = (**(type_13 **)(var_7 + 0x1b45ec))
                         (*(int *)(var_7 + 0x1b4494) + 0x21f0,0xa2,
                          *(int *)(var_7 + 0x1b4494) + 0x2738);
    }
    if (*(int *)(var_22 + 0x20) < 0) {
      var_24 = *(type_3 *)(var_22 + 8);
      *var_19 = var_22;
      return var_23 + var_24;
    }
    symtab = (type_9 *)&DAT_000000c5;
    layout = (type_10 *)(*(int *)(var_7 + 0x1b4494) + 0x2728);
    this_01 = (type_8 *)(*(int *)(var_7 + 0x1b45dc) + -0x4fe0);
    (**(type_13 **)(var_7 + 0x1b45ec))();
    var_23 = type_8::var_25
                       (this_01,symtab,layout,(bool)check_assertions,false,0,(type_14 *)0x0,
                        (type_14 **)0x0,(uint64_t *)0x0,(type_15 *)0x0,(type_16 *)0x0,(type_17 *)0x0,
                        false,(bool *)0x0);
    return var_23;
  }
  return var_23;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (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: (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))) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))) (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (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))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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 (character))))) (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(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)

{
  longlong lVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  int *piVar6;
  byte bVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  Symbol_table *pSVar11;
  undefined4 *puVar12;
  uint uVar13;
  Layout *pLVar14;
  char cVar15;
  undefined1 uVar16;
  int unaff_s0;
  undefined1 *unaff_s1;
  undefined4 *puVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  ulonglong uVar21;
  uint in_stack_fffffec4;
  int iStack_70;
  int *piStack_6c;
  char cStack_55;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) == 0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x2718);
  }
  else {
    iVar2 = **(int **)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (iVar2 == 0x20) {
      unaff_s0 = 0x20;
      iVar2 = 0x34;
LAB_0027d9d0:
      iVar3 = (*(code *)PTR_expected_segment_count_004359c8)(*(undefined4 *)(param_2 + 4));
      return (ulonglong)(uint)(unaff_s0 * iVar3 + iVar2);
    }
    unaff_s0 = 0x38;
    if (iVar2 == 0x40) {
      iVar2 = 0x40;
      goto LAB_0027d9d0;
    }
  }
  puVar18 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x21f0,0x50e,PTR_DAT_0043226c + 0x26f0);
  puVar12 = (undefined4 *)&DAT_0000005c;
  pcVar19 = *(code **)(puVar18 + 0x1b4984);
  iVar3 = *(int *)(puVar18 + 0x1b4974) + -0x5cec;
  (*pcVar19)(iVar3,0x5c,*(int *)(puVar18 + 0x1b482c) + 0x2730);
  iVar2 = (**(code **)(pcVar19 + 0x1b5408))(*puVar12,*(undefined4 *)(iVar3 + 4),0);
  if (iVar2 == 0) {
    iVar9 = *(int *)(pcVar19 + 0x1b47f8);
LAB_0027db94:
    uVar5 = (**(code **)(pcVar19 + 0x1b8da4))(iVar9 + 0x221c);
    (**(code **)(pcVar19 + 0x1b5310))(uVar5,*(undefined4 *)(iVar3 + 4));
    return 0;
  }
  uVar4 = *(uint *)(iVar2 + 0x28) & 0xe000;
  if (uVar4 == 0) {
    if ((int)(*(uint *)(iVar2 + 0x28) << 0x1d) < 0) {
      bVar7 = *(int *)(iVar2 + 0xc) != 0;
    }
    else {
      bVar7 = (**(code **)(pcVar19 + 0x1b556c))();
      bVar7 = bVar7 ^ 1;
    }
  }
  else {
    bVar7 = uVar4 != 0x8000;
  }
  iVar9 = *(int *)(pcVar19 + 0x1b47f8);
  if (bVar7 == 0) goto LAB_0027db94;
  puVar17 = (undefined4 *)puVar12[7];
  if (puVar17 != (undefined4 *)0x0) {
    uVar5 = (**(code **)(pcVar19 + 0x1b77f0))(iVar2);
    *puVar17 = uVar5;
  }
  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;
  }
  piVar6 = *(int **)(pcVar19 + 0x1b516c);
  if ((byte *)puVar12[0xb] != (byte *)0x0) {
    *(byte *)puVar12[0xb] = (byte)((uint)(*(int *)(iVar2 + 0x28) << 10) >> 0x1a);
    piVar6 = *(int **)(pcVar19 + 0x1b516c);
  }
  if (*(int *)(*piVar6 + 0xc) != 0) {
    iVar3 = **(int **)(*(int *)(*piVar6 + 0xc) + 4);
    if (iVar3 == 0x20) {
      return (ulonglong)*(uint *)(iVar2 + 0x30);
    }
    if (iVar3 == 0x40) {
      return *(ulonglong *)(iVar2 + 0x30);
    }
    (**(code **)(pcVar19 + 0x1b4950))
              (*(int *)(pcVar19 + 0x1b47f8) + 0x21f0,0xf9,*(int *)(pcVar19 + 0x1b47f8) + 0x2720);
  }
  pcVar20 = *(code **)(pcVar19 + 0x1b4950);
  iVar2 = *(int *)(pcVar19 + 0x1b4940) + -0x5cec;
  (*pcVar20)(iVar2,0x69,*(int *)(pcVar19 + 0x1b47f8) + 0x2718);
  if (*(int *)(iVar2 + 4) == 0) {
    piVar6 = *(int **)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);
    iVar2 = *(int *)(pcVar20 + 0x1b4618);
    if (piVar6 != (int *)0x0) {
      iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);
      pcVar19 = *(code **)(pcVar20 + 0x1b7d78);
      if (iVar2 != 0) {
        uVar4 = *(uint *)(iVar2 + 0x5228);
        uVar8 = *(uint *)(iVar2 + 0x522c);
        if (uVar4 == 0 && uVar8 == 0) {
          return *(ulonglong *)(piVar6[1] + 0x20);
        }
LAB_0027dcd8:
        return CONCAT44(uVar4,uVar8);
      }
      goto LAB_0027ddcc;
    }
LAB_0027dd80:
    (**(code **)(pcVar20 + 0x1b4770))(*(int *)(pcVar20 + 0x1b4760) + -0x5cec,0x69,iVar2 + 0x2718);
LAB_0027dd98:
    (**(code **)(pcVar20 + 0x1b4770))
              (*(int *)(pcVar20 + 0x1b4618) + 0x21f0,0x44a,*(int *)(pcVar20 + 0x1b4618) + 0x2700);
  }
  else {
    if (*(int *)(iVar2 + 4) != 1) goto LAB_0027dd98;
    iVar2 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 0xc);
    if (iVar2 == 0) {
      iVar2 = *(int *)(pcVar20 + 0x1b4618);
      goto LAB_0027dd80;
    }
    iVar3 = *(int *)(**(int **)(pcVar20 + 0x1b4f8c) + 8);
    if (iVar3 != 0) {
      uVar4 = *(uint *)(iVar3 + 0x4e80);
      uVar8 = *(uint *)(iVar3 + 0x4e84);
      uVar13 = *(uint *)(iVar3 + 0x5228);
      uVar10 = *(uint *)(iVar3 + 0x522c);
      if (uVar4 == 0 && uVar8 == 0) {
        iVar2 = *(int *)(iVar2 + 4);
        if (uVar13 == 0 && uVar10 == 0) {
          uVar13 = *(uint *)(iVar2 + 0x20);
          uVar10 = *(uint *)(iVar2 + 0x24);
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
        else {
          uVar4 = *(uint *)(iVar2 + 0x28);
          uVar8 = *(uint *)(iVar2 + 0x2c);
        }
      }
      else if (uVar13 == 0 && uVar10 == 0) {
        uVar13 = *(uint *)(*(int *)(iVar2 + 4) + 0x20);
        uVar10 = *(uint *)(*(int *)(iVar2 + 4) + 0x24);
      }
      if ((uVar13 < uVar4) || ((uVar4 == uVar13 && (uVar10 < uVar8)))) {
        return CONCAT44(uVar13,uVar10);
      }
      goto LAB_0027dcd8;
    }
  }
  pcVar19 = *(code **)(pcVar20 + 0x1b4770);
  piVar6 = (int *)(*(int *)(pcVar20 + 0x1b4760) + -0x5cec);
  (*pcVar19)();
LAB_0027ddcc:
  pcVar19 = pcVar19 + -0x25c0;
  FUN_0027da40();
  cStack_55 = (char)unaff_s0;
  if (piStack_6c != (int *)0x0) {
    *piStack_6c = 0;
  }
  uVar21 = (**(code **)(*piVar6 + 0xc))();
  if (unaff_s1 != (undefined1 *)0x0) {
    *unaff_s1 = 1;
  }
  if ((cStack_55 != '\0') && (*piStack_6c == 0)) {
    while (uVar16 = (undefined1)param_4, iStack_70 == 0) {
      uVar21 = (**(code **)(pcVar19 + 0x1b45ec))
                         (*(int *)(pcVar19 + 0x1b4494) + 0x21f0,0xa2,
                          *(int *)(pcVar19 + 0x1b4494) + 0x2738);
    }
    if (*(int *)(iStack_70 + 0x20) < 0) {
      lVar1 = *(longlong *)(iStack_70 + 8);
      *piStack_6c = iStack_70;
      return uVar21 + lVar1;
    }
    pLVar14 = (Layout *)&DAT_000000c5;
    cVar15 = (char)*(undefined4 *)(pcVar19 + 0x1b4494) + '(';
    pSVar11 = (Symbol_table *)(*(int *)(pcVar19 + 0x1b45dc) + -0x4fe0);
    (**(code **)(pcVar19 + 0x1b45ec))();
    uVar21 = gold::Expression::eval_maybe_dot
                       (pSVar11,pLVar14,(bool)cVar15,(bool)uVar16,(ulonglong)in_stack_fffffec4,
                        (Output_section *)0x0,(Output_section **)0x0,(ulonglong *)0x0,(STT *)0x0,
                        (STV *)0x0,(uchar *)0x0,false,(bool *)0x0);
    return uVar21;
  }
  return uVar21;
}

