
void reduce(mp_ptr tp,mp_srcptr ap,mp_size_t an,mp_srcptr mp,mp_size_t mn,gmp_pi1_t *dinv)

{
  bool bVar1;
  longlong lVar2;
  undefined1 *puVar3;
  undefined4 *puVar4;
  Elf32_Ehdr *pEVar5;
  int *piVar6;
  word *pwVar7;
  word *pwVar8;
  byte *pbVar9;
  byte *pbVar10;
  uint uVar11;
  char *pcVar12;
  int iVar13;
  uint *puVar14;
  int iVar15;
  tmp_reentrant_t *ptVar16;
  undefined4 uVar17;
  uint uVar18;
  mp_limb_t *pmVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 uVar21;
  mp_srcptr pmVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  mp_limb_t mVar26;
  Elf32_Ehdr *pEVar27;
  int iVar28;
  Elf32_Ehdr *in_t1;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  undefined1 *puVar29;
  Elf32_Ehdr *pEVar30;
  mp_srcptr pmVar31;
  Elf32_Ehdr *pEVar32;
  mp_ptr pmVar33;
  Elf32_Ehdr *pEVar34;
  tmp_reentrant_t *ptVar35;
  Elf32_Ehdr *pEVar36;
  tmp_reentrant_t *ptVar37;
  int in_t9;
  code *pcVar38;
  code *pcVar39;
  undefined1 *puVar40;
  undefined1 *puVar41;
  int iVar42;
  code *pcVar43;
  undefined4 uVar44;
  uint uVar45;
  uint uVar46;
  uint uVar47;
  undefined8 uVar48;
  undefined1 auStack_58 [24];
  gmp_pi1_t local_40;
  mp_srcptr local_34;
  tmp_reentrant_t *__tmp_marker;
  int local_2c;
  
  puVar29 = auStack_58;
  pEVar36 = (Elf32_Ehdr *)(an * 4);
  pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9);
  local_40.inv32 = in_t9 + 0x6e978;
  __tmp_marker = (tmp_reentrant_t *)0x0;
  local_2c._0_1_ = pEVar34->e_ident_magic_num;
  local_2c._1_1_ = pEVar34->e_ident_magic_str[0];
  local_2c._2_1_ = pEVar34->e_ident_magic_str[1];
  local_2c._3_1_ = pEVar34->e_ident_magic_str[2];
  if (pEVar36 < (Elf32_Ehdr *)0x7f01) {
    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);
    puVar29 = auStack_58 + iVar13;
    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);
  }
  else {
    local_34 = mp;
    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);
    mp = local_34;
  }
  uVar18 = ((an - mn) + 1) * 4;
  if (uVar18 < 0x7f01) {
    iVar13 = -(uVar18 + 7 & 0xfffffff8);
    puVar3 = puVar29 + iVar13 + 0x18;
    puVar29 = puVar29 + iVar13;
  }
  else {
    local_34 = mp;
    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);
    mp = local_34;
  }
  if (an != 0) {
    iVar13 = an + -1;
    mVar26 = *ap;
    if (iVar13 == 0) {
      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);
      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);
      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);
      pEVar30->e_ident_magic_str[2] = (char)mVar26;
      pEVar36 = pEVar30;
    }
    else {
      pEVar32 = pEVar30;
      pmVar19 = ap + 1;
      do {
        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);
        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);
        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);
        pEVar32->e_ident_magic_str[2] = (char)mVar26;
        iVar13 = iVar13 + -1;
        mVar26 = *pmVar19;
        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;
        pmVar19 = pmVar19 + 1;
      } while (iVar13 != 0);
      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);
      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);
      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);
      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);
      pEVar36->e_ident_magic_str[2] = (char)mVar26;
    }
  }
  *(undefined1 **)(puVar29 + 0x14) = puVar3;
  *(gmp_pi1_t **)(puVar29 + 0x10) = dinv;
  pEVar20 = (Elf32_Ehdr *)an;
  pEVar27 = (Elf32_Ehdr *)mn;
  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14));
  pEVar32 = (Elf32_Ehdr *)mn;
  if (mn != 0) {
    iVar13 = mn + -1;
    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;
    pmVar33 = tp;
    pEVar5 = pEVar30;
    if (iVar13 != 0) {
      do {
        *pmVar33 = (mp_limb_t)pEVar20;
        iVar13 = iVar13 + -1;
        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;
        pmVar33 = pmVar33 + 1;
        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
      } while (iVar13 != 0);
      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);
      tp = tp + mn + -1;
    }
    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;
  }
  ptVar16 = __tmp_marker;
  if (__tmp_marker != (tmp_reentrant_t *)0x0) {
    (**(code **)(local_40.inv32 - 0x7a2c))();
  }
  iVar13._0_1_ = pEVar34->e_ident_magic_num;
  iVar13._1_1_ = pEVar34->e_ident_magic_str[0];
  iVar13._2_1_ = pEVar34->e_ident_magic_str[1];
  iVar13._3_1_ = pEVar34->e_ident_magic_str[2];
  if (local_2c == iVar13) {
    return;
  }
  pcVar38 = *(code **)(local_40.inv32 - 0x7b70);
  pcVar43 = __gmpz_powm_ui;
  (*pcVar38)();
  pcVar39 = pcVar38 + 0x6e770;
  puVar4 = *(undefined4 **)(pcVar38 + 0x66c70);
  puVar41 = puVar29 + -0xa0;
  puVar3 = puVar29 + -0xa0;
  puVar40 = puVar29 + -0xa0;
  *(undefined1 **)(puVar29 + -8) = auStack_58;
  *(mp_srcptr *)(puVar29 + -0x20) = ap;
  *(code **)(puVar29 + -4) = pcVar43;
  *(undefined4 **)(puVar29 + -0x58) = puVar4;
  *(gmp_pi1_t **)(puVar29 + -0xc) = dinv;
  *(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36;
  *(mp_size_t *)(puVar29 + -0x14) = an;
  *(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34;
  *(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32;
  *(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30;
  *(mp_ptr *)(puVar29 + -0x28) = tp;
  *(code **)(puVar29 + -0x88) = pcVar39;
  *(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16;
  *(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20;
  *(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27;
  *(undefined4 *)(puVar29 + -0x2c) = *puVar4;
  pmVar31 = mp;
  if (mp < (mp_srcptr)0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;
    pEVar36 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      pmVar22 = mp;
      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();
LAB_00031228:
      uVar18 = (uint)uVar48;
      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));
      puVar3 = puVar41;
    }
    else {
      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);
      if (mp == (mp_srcptr)0x0) {
        uVar18 = 1;
        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {
          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);
        }
        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);
        ptVar35 = ptVar16[1].next;
        ptVar16->size = uVar18;
        ptVar35->next = (tmp_reentrant_t *)0x1;
        puVar3 = puVar29 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar29 + -0x40) = 0;
      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;
      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));
      if (pEVar20 < &Elf32_Ehdr_00010000) {
        iVar13 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar20) {
          iVar13 = 0x18;
        }
        iVar15 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar20) {
          iVar15 = 1;
        }
      }
      else {
        iVar13 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar20) {
          iVar13 = 8;
        }
        iVar15 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {
          iVar15 = 0x11;
        }
      }
      tp = *(mp_ptr *)(pcVar38 + 0x668bc);
      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];
      *(int *)(puVar29 + -0x6c) = iVar13;
      puVar41 = puVar29 + -0xa0;
      if (iVar13 != 0) {
        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {
          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);
          puVar40 = puVar29 + iVar13 + -0xa0;
          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);
        }
        else {
          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);
          pcVar39 = *(code **)(puVar29 + -0x88);
        }
        (**(code **)(pcVar39 + -0x7ad4))
                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)
                  );
        pcVar39 = *(code **)(puVar29 + -0x88);
        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;
        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));
        puVar41 = puVar40;
      }
      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {
        FUN_00030a38();
        return;
      }
      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);
      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);
      if (pmVar22 == (mp_srcptr)0x0) {
        trap(7);
      }
      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;
      in_t2 = (uint)pEVar20 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);
      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);
      uVar18 = uVar46;
      in_t1 = pEVar27;
      puVar3 = puVar41;
      if (pEVar34 < in_t3) {
        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);
        uVar18 = uVar46 - 1;
        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))
        goto LAB_00031228;
      }
    }
    if (pmVar22 == (mp_srcptr)0x0) {
      trap(7);
    }
    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;
    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);
    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);
    uVar46 = uVar47;
    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&
       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {
      uVar46 = uVar47 - 1;
    }
    uVar46 = uVar18 << 0x10 | uVar46;
    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);
    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);
    if (pEVar34 < pEVar27) {
      uVar18 = pEVar34 < pEVar20 ^ 1;
      pEVar32 = pEVar20;
      if (uVar18 == 0) {
        pEVar32 = (Elf32_Ehdr *)0x0;
      }
      uVar46 = (uVar46 - 1) - uVar18;
      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));
      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);
    }
    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);
    uVar18 = uVar46;
    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&
       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||
        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {
      uVar18 = uVar46 - 2;
    }
    *(uint *)(puVar29 + -0x44) = uVar18;
    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);
    pEVar32 = pEVar27;
    if ((int)pEVar27 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;
    }
    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);
    if ((int)pEVar32 <= (int)pEVar36) {
      if (pEVar27 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;
        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;
        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);
      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;
      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;
      pcVar39 = *(code **)(pcVar39 + -0x7a2c);
LAB_00030c08:
      (*pcVar39)();
      pcVar39 = *(code **)(puVar29 + -0x88);
      goto LAB_00030c64;
    }
    uVar18 = *(int *)(puVar29 + -0x50) + 4;
    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);
    *(uint *)(puVar29 + -0x70) = uVar18;
    if (pEVar30 == (Elf32_Ehdr *)0x0) {
      pcVar39 = *(code **)(pcVar39 + -0x7d50);
      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;
      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));
      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);
      *(undefined4 *)(puVar29 + -100) = uVar44;
    }
    else {
      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    pmVar33 = *(mp_ptr *)(puVar29 + -100);
    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;
    pEVar20 = pEVar34;
    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),
           *(gmp_pi1_t **)(puVar3 + 0x14));
    pcVar39 = *(code **)(puVar29 + -0x88);
    pEVar32 = pEVar36;
    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {
      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);
      do {
        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar6 = (int *)(iVar13 + -8);
        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);
        iVar13 = iVar13 + -4;
      } while (*piVar6 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar36 * 8 + 4U < 0x7f01) {
      iVar13 = -((int)pEVar36 * 8 + 8);
      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);
      puVar3 = puVar3 + iVar13;
    }
    else {
      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);
      pcVar39 = *(code **)(puVar29 + -0x88);
    }
    if (pEVar30 == (Elf32_Ehdr *)0x0) {
      dinv = (gmp_pi1_t *)
             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));
      pcVar39 = *(code **)(puVar29 + -0x88);
    }
    else {
      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {
      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    else {
      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);
      pcVar39 = *(code **)(puVar29 + -0x88);
      *(undefined4 *)(puVar29 + -0x74) = uVar44;
    }
    puVar4 = *(undefined4 **)(puVar29 + -100);
    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);
    pEVar20 = (Elf32_Ehdr *)*puVar4;
    pEVar30 = (Elf32_Ehdr *)dinv;
    pwVar7 = pwVar8;
    if (pwVar8 != (word *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;
        pwVar7 = (word *)((int)pwVar7 + -1);
        pEVar20 = (Elf32_Ehdr *)*puVar4;
        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
      } while (pwVar7 != (word *)0x0);
      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);
    }
    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;
    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);
    iVar13 = 0x1f - (int)tp;
    an = (mp_size_t)pEVar32;
    if (iVar13 == 0) {
      if (pEVar36 == pEVar32) {
        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;
        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;
        do {
          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);
          pwVar8 = (word *)((int)pwVar8 + -1);
          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {
            pcVar38 = *(code **)(pcVar39 + -0x7b2c);
            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;
            goto LAB_00031264;
          }
          pcVar12 = pcVar12 + -4;
          iVar13 = iVar13 + -4;
        } while (pwVar8 != (word *)0xffffffff);
        pcVar38 = *(code **)(pcVar39 + -0x7b2c);
LAB_00031264:
        pEVar20 = (Elf32_Ehdr *)dinv;
        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);
        pcVar39 = *(code **)(puVar29 + -0x88);
      }
    }
    else {
      *(mp_srcptr *)(puVar29 + 8) = mp;
      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);
      *(byte **)(puVar29 + -0x80) =
           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);
      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;
      do {
        pEVar20 = (Elf32_Ehdr *)dinv;
        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);
        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +
                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);
        pcVar39 = *(code **)(puVar29 + -0x88);
        if (an < (int)pEVar36) {
          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
            uVar24._0_1_ = pEVar34->e_ident_magic_num;
            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];
            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];
            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];
            pEVar30 = (Elf32_Ehdr *)dinv;
            if (pwVar8 != (word *)0x0) {
              pbVar9 = &pEVar34->e_ident_class;
              do {
                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                pEVar30->e_ident_magic_str[2] = (char)uVar24;
                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);
                pwVar8 = (word *)((int)pwVar8 + -1);
                uVar24 = *(undefined4 *)pbVar9;
                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
                pbVar9 = (byte *)pEVar20;
              } while (pwVar8 != (word *)0x0);
              pEVar30 = (Elf32_Ehdr *)
                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +
                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *
                        4 + -1);
            }
            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
            pEVar30->e_ident_magic_str[2] = (char)uVar24;
          }
          pcVar38 = *(code **)(pcVar39 + -0x7d8c);
        }
        else {
          uVar44 = *(undefined4 *)(puVar29 + -0x4c);
          pcVar39 = *(code **)(puVar29 + -0x7c);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);
          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;
          (*pcVar39)(pEVar34,an,uVar44,pEVar36);
          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);
          pcVar39 = *(code **)(puVar29 + -0x88);
          uVar44._0_1_ = pEVar34->e_ident_magic_num;
          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];
          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];
          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];
          if (pwVar8 == (word *)0x0) {
            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;
          }
          else {
            pEVar30 = (Elf32_Ehdr *)dinv;
            pbVar9 = &pEVar34->e_ident_class;
            do {
              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
              pEVar30->e_ident_magic_str[2] = (char)uVar44;
              an = (mp_size_t)(pbVar9 + 4);
              pwVar8 = (word *)((int)pwVar8 + -1);
              uVar44 = *(undefined4 *)pbVar9;
              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
              pbVar9 = (byte *)an;
            } while (pwVar8 != (word *)0x0);
            **(undefined4 **)(puVar29 + -0x80) = uVar44;
          }
          pcVar38 = *(code **)(pcVar39 + -0x7d8c);
          pEVar20 = (Elf32_Ehdr *)an;
          an = (mp_size_t)pEVar36;
        }
        if ((int)tp < 0) {
          uVar44 = *(undefined4 *)(puVar29 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
          pEVar20 = (Elf32_Ehdr *)dinv;
          (*pcVar38)(pEVar34,dinv,an,uVar44);
          an = (int)pEVar32 +
               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -
               (uint)(*(int *)(pEVar34->e_ident_magic_str +
                              (int)(&pEVar32->e_ident_magic_num +
                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +
                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));
          pcVar39 = *(code **)(puVar29 + -0x88);
          if (an < (int)pEVar36) {
            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
              uVar25._0_1_ = pEVar34->e_ident_magic_num;
              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];
              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];
              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];
              if (pwVar8 == (word *)0x0) {
                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;
              }
              else {
                pEVar30 = (Elf32_Ehdr *)dinv;
                pbVar9 = &pEVar34->e_ident_class;
                do {
                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
                  pEVar30->e_ident_magic_str[2] = (char)uVar25;
                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);
                  pwVar8 = (word *)((int)pwVar8 + -1);
                  uVar25 = *(undefined4 *)pbVar9;
                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
                  pbVar9 = (byte *)pEVar20;
                } while (pwVar8 != (word *)0x0);
                *(undefined4 *)
                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +
                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)
                     = uVar25;
              }
            }
          }
          else {
            uVar44 = *(undefined4 *)(puVar29 + -0x4c);
            pcVar39 = *(code **)(puVar29 + -0x7c);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);
            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;
            (*pcVar39)(pEVar34,an,uVar44,pEVar36);
            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);
            pcVar39 = *(code **)(puVar29 + -0x88);
            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;
            pEVar27 = (Elf32_Ehdr *)dinv;
            pEVar30 = pEVar34;
            if (pwVar8 == (word *)0x0) {
              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;
              an = (mp_size_t)pEVar36;
            }
            else {
              do {
                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;
                pwVar8 = (word *)((int)pwVar8 + -1);
                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
              } while (pwVar8 != (word *)0x0);
              **(undefined4 **)(puVar29 + -0x80) = pEVar20;
              an = (mp_size_t)pEVar36;
            }
          }
        }
        iVar13 = iVar13 + -1;
        tp = (mp_ptr)((int)tp << 1);
      } while (iVar13 != 0);
      mp = *(mp_srcptr *)(puVar29 + 8);
    }
LAB_00030dd0:
    pEVar30 = (Elf32_Ehdr *)0x0;
    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {
        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;
        do {
          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;
          if ((undefined1 *)an == (undefined1 *)0x0) {
            pmVar31 = (mp_srcptr)((uint)mp & 1);
            piVar6 = *(int **)(puVar29 + -0x54);
            if ((pmVar31 == (mp_srcptr)0x0) ||
               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          piVar6 = (int *)(pcVar12 + -8);
          pcVar12 = pcVar12 + -4;
        } while (*piVar6 == 0);
      }
      pmVar31 = (mp_srcptr)((uint)mp & 1);
      piVar6 = *(int **)(puVar29 + -0x54);
      if ((pmVar31 == (mp_srcptr)0x0) ||
         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar38 = *(code **)(pcVar39 + -0x7a84);
        if (*piVar6 < an) goto LAB_00031474;
LAB_00030e44:
        pmVar31 = (mp_srcptr)((uint)mp & 1);
        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;
        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);
        pEVar20 = (Elf32_Ehdr *)tp;
        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);
        pcVar39 = *(code **)(puVar29 + -0x88);
        if (iVar13 == 0) {
LAB_000314a0:
          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;
          pEVar20 = (Elf32_Ehdr *)
                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));
          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);
          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);
          do {
            uVar44 = *(undefined4 *)pbVar10;
            pbVar10 = pbVar10 + 4;
            *(undefined4 *)pbVar9 = uVar44;
            pbVar9 = pbVar9 + 4;
          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);
          iVar13 = *(int *)(puVar29 + -0x50);
        }
        else {
          if (an < (int)pEVar36) {
            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);
            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);
            pEVar20 = *(Elf32_Ehdr **)pbVar9;
            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);
            pEVar30 = pEVar20;
            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,
                  pEVar30 == (Elf32_Ehdr *)0x0) {
              pbVar10 = pbVar10 + 4;
              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;
              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);
              pbVar9 = pbVar9 + 4;
              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar10 = pEVar20;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar13 = *(int *)(puVar29 + -0x50);
        }
        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);
        iVar15._0_1_ = pEVar30->e_ident_magic_num;
        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];
        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];
        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];
        if (iVar15 == 0) {
          iVar13 = *(int *)(puVar29 + -0x78);
          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);
          do {
            iVar13 = iVar13 + -1;
            if (iVar13 == 0) {
              piVar6 = *(int **)(puVar29 + -0x54);
              goto LAB_00030f08;
            }
            piVar6 = (int *)(pbVar9 + -8);
            pbVar9 = pbVar9 + -4;
          } while (*piVar6 == 0);
          *(int *)(puVar29 + -0x78) = iVar13;
        }
        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {
          an = *(mp_size_t *)(puVar29 + -0x78);
          pcVar38 = *(code **)(pcVar39 + -0x7a84);
LAB_00031474:
          pEVar20 = (Elf32_Ehdr *)an;
          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));
          pcVar39 = *(code **)(puVar29 + -0x88);
          goto LAB_00030e44;
        }
        an = *(mp_size_t *)(puVar29 + -0x78);
        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;
      }
      pmVar31 = (mp_srcptr)((uint)mp & 1);
      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;
      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);
      puVar4 = puVar23;
      pEVar27 = (Elf32_Ehdr *)dinv;
      if (pwVar8 != (word *)0x0) {
        do {
          *puVar4 = pEVar20;
          pwVar8 = (word *)((int)pwVar8 + -1);
          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
        } while (pwVar8 != (word *)0x0);
        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      }
      *puVar23 = pEVar20;
    }
    else {
      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);
      iVar28 = *(int *)(puVar29 + -0x88);
      iVar13 = an * 4;
      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));
      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;
      tp = (mp_ptr)pEVar27;
      if ((int)pEVar36 <= an) {
        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;
        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),
            *(mp_ptr *)(puVar3 + 0x14));
        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);
        iVar28 = *(int *)(puVar29 + -0x88);
        uVar17._0_1_ = pEVar34->e_ident_magic_num;
        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];
        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];
        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];
        pEVar27 = (Elf32_Ehdr *)dinv;
        pEVar20 = pEVar34;
        if (pwVar8 == (word *)0x0) {
          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;
          an = (mp_size_t)pEVar36;
        }
        else {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar17;
            pwVar8 = (word *)((int)pwVar8 + -1);
            uVar17._0_1_ = pEVar20->e_ident_class;
            uVar17._1_1_ = pEVar20->e_ident_data;
            uVar17._2_1_ = pEVar20->e_ident_version;
            uVar17._3_1_ = pEVar20->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (pwVar8 != (word *)0x0);
          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =
               uVar17;
          an = (mp_size_t)pEVar36;
        }
LAB_000312bc:
        pEVar20 = (Elf32_Ehdr *)dinv;
        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));
        pcVar39 = *(code **)(puVar29 + -0x88);
        goto LAB_00030ddc;
      }
      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
        uVar21._0_1_ = pEVar34->e_ident_magic_num;
        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];
        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];
        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];
        pEVar27 = (Elf32_Ehdr *)dinv;
        pEVar20 = pEVar34;
        if (pwVar8 != (word *)0x0) {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar21;
            pwVar8 = (word *)((int)pwVar8 + -1);
            uVar21._0_1_ = pEVar20->e_ident_class;
            uVar21._1_1_ = pEVar20->e_ident_data;
            uVar21._2_1_ = pEVar20->e_ident_version;
            uVar21._3_1_ = pEVar20->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (pwVar8 != (word *)0x0);
          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);
        }
        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
        pEVar27->e_ident_magic_str[2] = (char)uVar21;
        goto LAB_000312bc;
      }
      pEVar20 = (Elf32_Ehdr *)dinv;
      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);
      pcVar39 = *(code **)(puVar29 + -0x88);
      pmVar31 = mp;
LAB_00030f04:
      piVar6 = *(int **)(puVar29 + -0x54);
LAB_00030f08:
      if (*piVar6 < 0) {
        tp = *(mp_ptr *)(puVar29 + -0x54);
        pEVar20 = (Elf32_Ehdr *)0x0;
        (**(code **)(pcVar39 + -0x7a84))(tp);
        pcVar39 = *(code **)(puVar29 + -0x88);
        ((Elf32_Ehdr *)tp)->e_ident_class = 0;
        ((Elf32_Ehdr *)tp)->e_ident_data = 0;
        ((Elf32_Ehdr *)tp)->e_ident_version = 0;
        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);
    piVar6 = *(int **)(puVar29 + -0x58);
    if (ptVar16 != (tmp_reentrant_t *)0x0) {
      pcVar39 = *(code **)(pcVar39 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar39 = *(code **)(pcVar38 + 0x66c10);
    *(mp_srcptr *)(puVar29 + -0x3c) = mp;
    *(undefined4 *)(puVar29 + -0x34) = 1;
    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;
    (*pcVar39)();
    pcVar39 = *(code **)(puVar29 + -0x88);
LAB_00030c64:
    piVar6 = *(int **)(puVar29 + -0x58);
  }
  if (*(int *)(puVar29 + -0x2c) == *piVar6) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + -0x7b70);
  uVar44 = 0x3153c;
  (*pcVar39)();
  pcVar38 = pcVar39 + 0x6db00;
  puVar41 = puVar3 + -0x38;
  *(mp_srcptr *)(puVar3 + -0x10) = pmVar31;
  piVar6 = *(int **)(pcVar39 + 0x66000);
  *(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0;
  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30;
  *(mp_ptr *)(puVar3 + -0x18) = tp;
  *(undefined4 *)(puVar3 + -4) = uVar44;
  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;
  *(code **)(puVar3 + -0x28) = pcVar38;
  *(int *)(puVar3 + -0x1c) = *piVar6;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {
    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {
      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;
    }
    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);
    pcVar38 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);
    uVar18 = 8;
    do {
      uVar46 = uVar18;
      pEVar30 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar18 = uVar46 - 1;
    } while (pEVar30 < pEVar20);
    if (uVar46 == 0) {
      trap(7);
    }
    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar18 < 0x7f01) {
      iVar13 = -(uVar18 + 7 & 0xfffffff8);
      puVar41 = puVar3 + iVar13 + -0x38;
      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);
    }
    else {
      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    iVar15 = 0;
    uVar46 = 1;
    iVar13 = 0;
    uVar18 = 0;
    ptVar35 = (tmp_reentrant_t *)0x6;
    do {
      uVar47 = uVar18 + 1;
      iVar28 = iVar13;
      ptVar37 = ptVar35;
      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {
        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);
        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {
          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);
        }
        else {
          iVar28 = iVar13 + 1;
          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;
        }
      }
      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);
      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;
      iVar15 = iVar15 + (uVar46 & 1);
      iVar13 = iVar28;
      uVar18 = uVar47;
      ptVar35 = ptVar37;
    } while (bVar1);
    if (iVar28 == 0) {
      (ptVar16[1].next)->next = ptVar37;
      ptVar16->size = 1;
    }
    else {
      pcVar39 = *(code **)(pcVar38 + -0x7dbc);
      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;
      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);
    if (ptVar35 != (tmp_reentrant_t *)0x0) {
      (**(code **)(pcVar38 + -0x7a2c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);
    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;
    ptVar16->size = 1;
    ptVar35 = ptVar16;
    pEVar30 = pEVar20;
    pEVar20 = pEVar27;
    puVar41 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar6) {
    return;
  }
  pcVar39 = *(code **)(pcVar38 + -0x7b70);
  pcVar43 = __gmpz_probab_prime_p;
  (*pcVar39)();
  pcVar38 = *(code **)(pcVar39 + 0x659a8);
  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;
  *(int **)(puVar41 + -0x20) = piVar6;
  piVar6 = *(int **)(pcVar39 + 0x65da0);
  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34;
  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;
  pEVar34 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36;
  *(mp_size_t *)(puVar41 + -0x14) = an;
  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;
  *(code **)(puVar41 + -4) = pcVar43;
  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;
  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;
  *(int *)(puVar41 + -0x2c) = *piVar6;
  iVar13 = (*pcVar38)();
  ptVar37 = ptVar35[1].next;
  iVar15 = *(int *)(puVar41 + -0x90);
  pEVar36 = (Elf32_Ehdr *)ptVar35->size;
  ptVar16 = ptVar37->next;
  if (iVar13 < 1) {
    pEVar34 = (Elf32_Ehdr *)0xf4240;
    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);
    iVar15 = *(int *)(puVar41 + -0x90);
    if (iVar13 < 1) {
      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&
         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {
        uVar46 = 3;
        while (uVar18 != 0) {
          if (uVar46 == 0) {
            trap(7);
          }
          uVar18 = (uint)ptVar16 % uVar46;
          if ((uint)ptVar16 / uVar46 < uVar46) break;
          uVar46 = uVar46 + 2;
        }
      }
      goto LAB_00031824;
    }
    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;
    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;
    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);
    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;
  }
  if ((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {
    pEVar34 = pEVar36;
    if ((int)pEVar36 < 10) {
      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);
      iVar15 = *(int *)(puVar41 + -0x90);
    }
    else {
      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);
      iVar15 = *(int *)(puVar41 + -0x90);
    }
    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&
          (uVar46 != (uVar46 / 7) * 7)) &&
         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&
        ((uVar46 != (uVar46 / 0x11) * 0x11 &&
         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&
       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {
      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);
      iVar13 = *(int *)(puVar41 + -0x90);
      if (0x1f < uVar46) {
        iVar28 = 0;
        puVar29 = puVar41 + -0x68;
        uVar47 = 0x1f;
        iVar15 = 0;
LAB_00031a28:
        uVar11 = 3;
        do {
          if (uVar11 == 0) {
            trap(7);
          }
          uVar45 = uVar47 % uVar11;
          if (uVar47 / uVar11 < uVar11) {
            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {
              iVar42 = iVar15 + 1;
              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar41 + -0x7c) = puVar29;
            *(int *)(puVar41 + -0x80) = iVar28;
            *(uint *)(puVar41 + -0x84) = uVar46;
            if ((int)pEVar36 < 10) {
              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);
              iVar13 = *(int *)(puVar41 + -0x90);
              uVar46 = *(uint *)(puVar41 + -0x84);
              iVar28 = *(int *)(puVar41 + -0x80);
              puVar29 = *(undefined1 **)(puVar41 + -0x7c);
            }
            else {
              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);
              iVar13 = *(int *)(puVar41 + -0x90);
              puVar29 = *(undefined1 **)(puVar41 + -0x7c);
              iVar28 = *(int *)(puVar41 + -0x80);
              uVar46 = *(uint *)(puVar41 + -0x84);
            }
            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar11 = uVar11 + 2;
          iVar42 = iVar15;
        } while (uVar45 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      (**(code **)(iVar13 + -0x7d48))(ptVar35);
      iVar15 = *(int *)(puVar41 + -0x90);
      pEVar34 = pEVar30;
    }
  }
LAB_00031824:
  iVar13 = *(int *)(puVar41 + -0x2c);
  if (iVar13 == *piVar6) {
    return;
  }
LAB_00031c58:
  pcVar39 = *(code **)(iVar15 + -0x7b70);
  uVar44 = 0x31c64;
  (*pcVar39)();
  pcVar38 = pcVar39 + 0x6d3d0;
  pcVar12 = *(char **)(pcVar39 + 0x65518);
  *(int **)(puVar41 + -0xa8) = piVar6;
  *(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36;
  *(code **)(puVar41 + -0xb8) = pcVar38;
  *(undefined4 *)(puVar41 + -0xa4) = uVar44;
  if (*pcVar12 == '\0') {
    pcVar38 = *(code **)(pcVar39 + 0x65990);
    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);
    *pcVar12 = '\x01';
    (*pcVar38)(uVar44);
    pcVar38 = *(code **)(puVar41 + -0xb8);
  }
  pEVar36 = pEVar34;
  if ((int)pEVar34 < 0) {
    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;
  }
  (**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5);
  if ((int)pEVar34 < 0) {
    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);
  }
  return;
LAB_00031bcc:
  iVar15 = iVar15 + -1;
  if (iVar15 == -1) goto code_r0x00031bd8;
  uVar11 = *puVar14;
  if (uVar11 == 0) {
    trap(7);
  }
  puVar14 = puVar14 + -1;
  if (uVar18 % uVar11 == 0) {
    pEVar34 = pEVar36;
    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);
    iVar15 = *(int *)(puVar41 + -0x90);
    if (iVar13 == 0) goto LAB_00031824;
    pEVar34 = (Elf32_Ehdr *)0x81;
    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar42 = 1;
  iVar15 = 0;
  uVar18 = uVar47;
LAB_00031b4c:
  *(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;
LAB_00031a4c:
  uVar11 = uVar47 + 2;
  iVar28 = (uint)(uVar11 < uVar47) + iVar28;
  uVar47 = uVar11;
  iVar15 = iVar42;
  if (uVar46 <= uVar11) goto LAB_00031a64;
  goto LAB_00031a28;
}



int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,
                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)

{
  bool bVar1;
  longlong lVar2;
  undefined1 *puVar3;
  undefined4 *puVar4;
  Elf32_Ehdr *pEVar5;
  Elf32_Ehdr *pEVar6;
  int *piVar7;
  byte *pbVar8;
  byte *pbVar9;
  char *pcVar10;
  undefined1 *puVar11;
  Elf32_Ehdr *pEVar12;
  int iVar13;
  uint *puVar14;
  int iVar15;
  int *piVar16;
  undefined4 uVar17;
  int iVar18;
  uint uVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 uVar21;
  uint uVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined1 *puVar25;
  undefined4 uVar26;
  undefined4 uVar27;
  Elf32_Ehdr *pEVar28;
  Elf32_Ehdr *in_t1;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  uint uVar29;
  undefined1 *puVar30;
  Elf32_Ehdr *pEVar31;
  Elf32_Ehdr *pEVar32;
  int *piVar33;
  Elf32_Ehdr *pEVar34;
  uint *puVar35;
  undefined *puVar36;
  undefined *puVar37;
  code *pcVar38;
  undefined1 *puVar39;
  int iVar40;
  code *pcVar41;
  code *pcVar42;
  uint uVar43;
  uint uVar44;
  undefined8 uVar45;
  undefined1 auStack_58 [24];
  int *local_30;
  int local_2c;
  
  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;
  puVar30 = auStack_58;
  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);
  local_30 = (int *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {
    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);
    puVar30 = auStack_58 + iVar13;
    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);
  }
  else {
    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);
  }
  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;
  if (uVar19 < 0x7f01) {
    iVar13 = -(uVar19 + 7 & 0xfffffff8);
    puVar3 = puVar30 + iVar13 + 0x18;
    puVar30 = puVar30 + iVar13;
  }
  else {
    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
  }
  if (param_3 != (Elf32_Ehdr *)0x0) {
    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
    uVar27 = *param_2;
    if (puVar11 == (undefined1 *)0x0) {
      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
      pEVar31->e_ident_magic_str[2] = (char)uVar27;
      pEVar34 = pEVar31;
    }
    else {
      pEVar32 = pEVar31;
      puVar4 = param_2 + 1;
      do {
        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
        pEVar32->e_ident_magic_str[2] = (char)uVar27;
        puVar11 = puVar11 + -1;
        uVar27 = *puVar4;
        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;
        puVar4 = puVar4 + 1;
      } while (puVar11 != (undefined1 *)0x0);
      pEVar34 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str
                );
      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
      pEVar34->e_ident_magic_str[2] = (char)uVar27;
    }
  }
  *(undefined1 **)(puVar30 + 0x14) = puVar3;
  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;
  pEVar20 = param_3;
  pEVar28 = param_5;
  FUN_00030430(pEVar31);
  pEVar32 = param_5;
  if (param_5 != (Elf32_Ehdr *)0x0) {
    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);
    pEVar20 = *(Elf32_Ehdr **)pEVar31;
    pEVar12 = param_1;
    pEVar5 = pEVar31;
    if (puVar3 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar12 = pEVar20;
        puVar3 = puVar3 + -1;
        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;
        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;
        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
      } while (puVar3 != (undefined1 *)0x0);
      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);
      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)param_1 = pEVar20;
  }
  piVar16 = local_30;
  if (local_30 != (int *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
  }
  if (local_2c == *(int *)pEVar6) {
    return *(int *)pEVar6;
  }
  pcVar41 = __gmpz_powm_ui;
  puVar36 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  puVar37 = puVar36 + 0x6e770;
  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);
  puVar11 = puVar30 + -0xa0;
  puVar3 = puVar30 + -0xa0;
  puVar39 = puVar30 + -0xa0;
  *(undefined1 **)(puVar30 + -8) = auStack_58;
  *(undefined4 **)(puVar30 + -0x20) = param_2;
  *(code **)(puVar30 + -4) = pcVar41;
  *(undefined4 **)(puVar30 + -0x58) = puVar4;
  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;
  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;
  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;
  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;
  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;
  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;
  *(undefined **)(puVar30 + -0x88) = puVar37;
  *(int **)(puVar30 + -0x54) = piVar16;
  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;
  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;
  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;
  uVar19 = param_4;
  if (param_4 < 0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;
    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;
    pEVar34 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      uVar22 = param_4;
      uVar45 = (**(code **)(puVar36 + 0x66d0c))();
LAB_00031228:
      uVar29 = (uint)uVar45;
      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);
      puVar3 = puVar11;
    }
    else {
      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);
      if (param_4 == 0) {
        uVar22 = 1;
        if (pEVar34 == (Elf32_Ehdr *)0x1) {
          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);
        }
        piVar16 = *(int **)(puVar30 + -0x54);
        piVar16[1] = uVar22;
        *(undefined4 *)piVar16[2] = 1;
        puVar3 = puVar30 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar30 + -0x40) = 0;
      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;
      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);
      if (pEVar20 < &Elf32_Ehdr_00010000) {
        iVar13 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar20) {
          iVar13 = 0x18;
        }
        iVar15 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar20) {
          iVar15 = 1;
        }
      }
      else {
        iVar13 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar20) {
          iVar13 = 8;
        }
        iVar15 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {
          iVar15 = 0x11;
        }
      }
      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);
      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];
      *(int *)(puVar30 + -0x6c) = iVar13;
      puVar11 = puVar30 + -0xa0;
      if (iVar13 != 0) {
        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {
          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);
          puVar39 = puVar30 + iVar13 + -0xa0;
          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);
        }
        else {
          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);
          puVar37 = *(undefined **)(puVar30 + -0x88);
        }
        (**(code **)(puVar37 + -0x7ad4))
                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)
                  );
        puVar37 = *(undefined **)(puVar30 + -0x88);
        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;
        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);
        puVar11 = puVar39;
      }
      if (pEVar34 == (Elf32_Ehdr *)0x1) {
        pEVar28 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);
      }
      uVar22 = (uint)pEVar20 >> 0x10;
      if (uVar22 == 0) {
        trap(7);
      }
      uVar44 = ~(uint)pEVar20 / uVar22;
      in_t2 = (uint)pEVar20 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);
      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);
      uVar29 = uVar44;
      in_t1 = pEVar28;
      puVar3 = puVar11;
      if (pEVar6 < in_t3) {
        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));
        uVar29 = uVar44 - 1;
        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))
        goto LAB_00031228;
      }
    }
    if (uVar22 == 0) {
      trap(7);
    }
    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;
    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);
    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));
    uVar22 = uVar44;
    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&
       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {
      uVar22 = uVar44 - 1;
    }
    uVar22 = uVar29 << 0x10 | uVar22;
    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);
    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);
    if (pEVar6 < pEVar28) {
      uVar29 = pEVar6 < pEVar20 ^ 1;
      pEVar32 = pEVar20;
      if (uVar29 == 0) {
        pEVar32 = (Elf32_Ehdr *)0x0;
      }
      uVar22 = (uVar22 - 1) - uVar29;
      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));
      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);
    }
    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));
    uVar29 = uVar22;
    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&
       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||
        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {
      uVar29 = uVar22 - 2;
    }
    *(uint *)(puVar30 + -0x44) = uVar29;
    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);
    pEVar32 = pEVar28;
    if ((int)pEVar28 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;
    }
    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);
    if ((int)pEVar32 <= (int)pEVar34) {
      if (pEVar28 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;
        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;
        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      piVar16 = *(int **)(puVar30 + -0x40);
      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;
      if (piVar16 == (int *)0x0) goto LAB_00030c64;
      pcVar41 = *(code **)(puVar37 + -0x7a2c);
LAB_00030c08:
      (*pcVar41)();
      puVar37 = *(undefined **)(puVar30 + -0x88);
      goto LAB_00030c64;
    }
    uVar22 = *(int *)(puVar30 + -0x50) + 4;
    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);
    *(uint *)(puVar30 + -0x70) = uVar22;
    if (pEVar31 == (Elf32_Ehdr *)0x0) {
      pcVar41 = *(code **)(puVar37 + -0x7d50);
      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;
      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));
      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);
      *(undefined4 *)(puVar30 + -100) = uVar27;
    }
    else {
      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    iVar13 = *(int *)(puVar30 + -100);
    uVar27 = *(undefined4 *)(puVar30 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;
    pEVar20 = pEVar6;
    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);
    puVar37 = *(undefined **)(puVar30 + -0x88);
    pEVar32 = pEVar34;
    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {
      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);
      do {
        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar16 = (int *)(iVar13 + -8);
        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);
        iVar13 = iVar13 + -4;
      } while (*piVar16 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar34 * 8 + 4U < 0x7f01) {
      iVar13 = -((int)pEVar34 * 8 + 8);
      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);
      puVar3 = puVar3 + iVar13;
    }
    else {
      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);
      puVar37 = *(undefined **)(puVar30 + -0x88);
    }
    if (pEVar31 == (Elf32_Ehdr *)0x0) {
      param_6 = (Elf32_Ehdr *)
                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));
      puVar37 = *(undefined **)(puVar30 + -0x88);
    }
    else {
      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {
      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    else {
      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);
      puVar37 = *(undefined **)(puVar30 + -0x88);
      *(undefined4 *)(puVar30 + -0x74) = uVar27;
    }
    puVar4 = *(undefined4 **)(puVar30 + -100);
    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);
    pEVar20 = (Elf32_Ehdr *)*puVar4;
    pEVar31 = param_6;
    puVar11 = puVar25;
    if (puVar25 != (undefined1 *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)pEVar31 = pEVar20;
        puVar11 = puVar11 + -1;
        pEVar20 = (Elf32_Ehdr *)*puVar4;
        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
      } while (puVar11 != (undefined1 *)0x0);
      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar31 = pEVar20;
    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);
    iVar13 = 0x1f - (int)param_1;
    param_3 = pEVar32;
    if (iVar13 == 0) {
      if (pEVar34 == pEVar32) {
        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);
        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;
        do {
          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);
          puVar25 = puVar25 + -1;
          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {
            pcVar41 = *(code **)(puVar37 + -0x7b2c);
            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;
            goto LAB_00030dd0;
          }
          pbVar8 = pbVar8 + -4;
          iVar13 = iVar13 + -4;
        } while (puVar25 != (undefined1 *)0xffffffff);
        pcVar41 = *(code **)(puVar37 + -0x7b2c);
LAB_00031264:
        pEVar20 = param_6;
        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);
        puVar37 = *(undefined **)(puVar30 + -0x88);
      }
    }
    else {
      *(uint *)(puVar30 + 8) = param_4;
      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);
      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;
      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;
      do {
        pEVar20 = param_6;
        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);
        param_3 = (Elf32_Ehdr *)
                  ((int)param_3 * 2 -
                  (uint)(*(int *)(pEVar6->e_ident_magic_str +
                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));
        puVar37 = *(undefined **)(puVar30 + -0x88);
        if ((int)param_3 < (int)pEVar34) {
          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 != (Elf32_Ehdr *)0x0) {
            uVar24._0_1_ = pEVar6->e_ident_magic_num;
            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];
            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];
            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];
            pEVar31 = param_6;
            if (puVar11 != (undefined1 *)0x0) {
              pbVar8 = &pEVar6->e_ident_class;
              do {
                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                pEVar31->e_ident_magic_str[2] = (char)uVar24;
                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);
                puVar11 = puVar11 + -1;
                uVar24 = *(undefined4 *)pbVar8;
                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
                pbVar8 = (byte *)pEVar20;
              } while (puVar11 != (undefined1 *)0x0);
              pEVar31 = (Elf32_Ehdr *)
                        (param_6->e_ident_magic_str +
                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);
            }
            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
            pEVar31->e_ident_magic_str[2] = (char)uVar24;
          }
          pcVar41 = *(code **)(puVar37 + -0x7d8c);
        }
        else {
          uVar27 = *(undefined4 *)(puVar30 + -0x4c);
          pcVar41 = *(code **)(puVar30 + -0x7c);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);
          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
          puVar37 = *(undefined **)(puVar30 + -0x88);
          uVar27._0_1_ = pEVar6->e_ident_magic_num;
          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];
          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];
          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];
          if (puVar11 == (undefined1 *)0x0) {
            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
            param_6->e_ident_magic_str[2] = (char)uVar27;
          }
          else {
            pEVar31 = param_6;
            pbVar8 = &pEVar6->e_ident_class;
            do {
              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
              pEVar31->e_ident_magic_str[2] = (char)uVar27;
              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);
              puVar11 = puVar11 + -1;
              uVar27 = *(undefined4 *)pbVar8;
              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
              pbVar8 = (byte *)param_3;
            } while (puVar11 != (undefined1 *)0x0);
            **(undefined4 **)(puVar30 + -0x80) = uVar27;
          }
          pcVar41 = *(code **)(puVar37 + -0x7d8c);
          pEVar20 = param_3;
          param_3 = pEVar34;
        }
        if ((int)param_1 < 0) {
          uVar27 = *(undefined4 *)(puVar30 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
          pEVar20 = param_6;
          (*pcVar41)(pEVar6,param_6,param_3,uVar27);
          param_3 = (Elf32_Ehdr *)
                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +
                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +
                                    (int)(pEVar32->e_ident_magic_str +
                                          (int)(param_3->e_ident_magic_str + -2) +
                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));
          puVar37 = *(undefined **)(puVar30 + -0x88);
          if ((int)param_3 < (int)pEVar34) {
            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
            if (param_3 != (Elf32_Ehdr *)0x0) {
              uVar26._0_1_ = pEVar6->e_ident_magic_num;
              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];
              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];
              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];
              if (puVar11 == (undefined1 *)0x0) {
                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
                param_6->e_ident_magic_str[2] = (char)uVar26;
              }
              else {
                pEVar31 = param_6;
                pbVar8 = &pEVar6->e_ident_class;
                do {
                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
                  pEVar31->e_ident_magic_str[2] = (char)uVar26;
                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);
                  puVar11 = puVar11 + -1;
                  uVar26 = *(undefined4 *)pbVar8;
                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
                  pbVar8 = (byte *)pEVar20;
                } while (puVar11 != (undefined1 *)0x0);
                *(undefined4 *)
                 (param_6->e_ident_magic_str +
                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;
              }
            }
          }
          else {
            uVar27 = *(undefined4 *)(puVar30 + -0x4c);
            pcVar41 = *(code **)(puVar30 + -0x7c);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);
            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
            puVar37 = *(undefined **)(puVar30 + -0x88);
            pEVar20 = *(Elf32_Ehdr **)pEVar6;
            pEVar28 = param_6;
            pEVar31 = pEVar6;
            if (puVar11 == (undefined1 *)0x0) {
              *(Elf32_Ehdr **)param_6 = pEVar20;
              param_3 = pEVar34;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar28 = pEVar20;
                puVar11 = puVar11 + -1;
                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;
                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
              } while (puVar11 != (undefined1 *)0x0);
              **(undefined4 **)(puVar30 + -0x80) = pEVar20;
              param_3 = pEVar34;
            }
          }
        }
        iVar13 = iVar13 + -1;
        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);
      } while (iVar13 != 0);
      param_4 = *(uint *)(puVar30 + 8);
    }
LAB_00030dd0:
    pEVar31 = (Elf32_Ehdr *)0x0;
    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < (int)param_3) &&
         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {
        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
        do {
          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 == (Elf32_Ehdr *)0x0) {
            uVar19 = param_4 & 1;
            piVar16 = *(int **)(puVar30 + -0x54);
            if ((uVar19 == 0) ||
               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          pcVar10 = (char *)(pbVar8 + -8);
          pbVar8 = pbVar8 + -4;
        } while (*(int *)pcVar10 == 0);
      }
      uVar19 = param_4 & 1;
      piVar16 = *(int **)(puVar30 + -0x54);
      if ((uVar19 == 0) ||
         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar41 = *(code **)(puVar37 + -0x7a84);
        if (*piVar16 < (int)param_3) goto LAB_00031474;
LAB_00030e44:
        uVar19 = param_4 & 1;
        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);
        pEVar20 = param_1;
        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);
        puVar37 = *(undefined **)(puVar30 + -0x88);
        if (iVar13 == 0) {
LAB_000314a0:
          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;
          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);
          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
          do {
            uVar27 = *(undefined4 *)pbVar9;
            pbVar9 = pbVar9 + 4;
            *(undefined4 *)pbVar8 = uVar27;
            pbVar8 = pbVar8 + 4;
          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);
          iVar13 = *(int *)(puVar30 + -0x50);
        }
        else {
          if ((int)param_3 < (int)pEVar34) {
            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
            pEVar20 = *(Elf32_Ehdr **)pbVar8;
            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);
            pEVar31 = pEVar20;
            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)
            {
              pbVar9 = pbVar9 + 4;
              if (pEVar34 == param_3) goto LAB_00031130;
              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);
              pbVar8 = pbVar8 + 4;
              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar9 = pEVar20;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar13 = *(int *)(puVar30 + -0x50);
        }
        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);
        iVar13._0_1_ = pEVar31->e_ident_magic_num;
        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];
        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];
        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];
        if (iVar13 == 0) {
          iVar13 = *(int *)(puVar30 + -0x78);
          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);
          do {
            iVar13 = iVar13 + -1;
            if (iVar13 == 0) {
              piVar16 = *(int **)(puVar30 + -0x54);
              goto LAB_00030f08;
            }
            pcVar10 = (char *)(pbVar8 + -8);
            pbVar8 = pbVar8 + -4;
          } while (*(int *)pcVar10 == 0);
          *(int *)(puVar30 + -0x78) = iVar13;
        }
        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {
          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);
          pcVar41 = *(code **)(puVar37 + -0x7a84);
LAB_00031474:
          pEVar20 = param_3;
          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));
          puVar37 = *(undefined **)(puVar30 + -0x88);
          goto LAB_00030e44;
        }
        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);
        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;
      }
      uVar19 = param_4 & 1;
      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      pEVar20 = *(Elf32_Ehdr **)param_6;
      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);
      puVar4 = puVar23;
      pEVar28 = param_6;
      if (puVar11 != (undefined1 *)0x0) {
        do {
          *puVar4 = pEVar20;
          puVar11 = puVar11 + -1;
          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
        } while (puVar11 != (undefined1 *)0x0);
        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);
      }
      *puVar23 = pEVar20;
    }
    else {
      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);
      iVar18 = *(int *)(puVar30 + -0x88);
      iVar13 = (int)param_3 * 4;
      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));
      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;
      param_1 = pEVar28;
      if ((int)pEVar34 <= (int)param_3) {
        uVar27 = *(undefined4 *)(puVar30 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);
        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
        iVar18 = *(int *)(puVar30 + -0x88);
        uVar17._0_1_ = pEVar6->e_ident_magic_num;
        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];
        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];
        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];
        pEVar28 = param_6;
        pEVar20 = pEVar6;
        if (puVar11 == (undefined1 *)0x0) {
          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
          param_6->e_ident_magic_str[2] = (char)uVar17;
          param_3 = pEVar34;
        }
        else {
          do {
            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
            pEVar28->e_ident_magic_str[2] = (char)uVar17;
            puVar11 = puVar11 + -1;
            uVar17._0_1_ = pEVar20->e_ident_class;
            uVar17._1_1_ = pEVar20->e_ident_data;
            uVar17._2_1_ = pEVar20->e_ident_version;
            uVar17._3_1_ = pEVar20->e_ident_osabi;
            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (puVar11 != (undefined1 *)0x0);
          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;
          param_3 = pEVar34;
        }
LAB_000312bc:
        pEVar20 = param_6;
        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));
        puVar37 = *(undefined **)(puVar30 + -0x88);
        goto LAB_00030ddc;
      }
      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      if (param_3 != (Elf32_Ehdr *)0x0) {
        uVar21._0_1_ = pEVar6->e_ident_magic_num;
        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];
        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];
        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];
        pEVar28 = param_6;
        pEVar20 = pEVar6;
        if (puVar11 != (undefined1 *)0x0) {
          do {
            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
            pEVar28->e_ident_magic_str[2] = (char)uVar21;
            puVar11 = puVar11 + -1;
            uVar21._0_1_ = pEVar20->e_ident_class;
            uVar21._1_1_ = pEVar20->e_ident_data;
            uVar21._2_1_ = pEVar20->e_ident_version;
            uVar21._3_1_ = pEVar20->e_ident_osabi;
            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (puVar11 != (undefined1 *)0x0);
          pEVar28 = (Elf32_Ehdr *)
                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);
        }
        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
        pEVar28->e_ident_magic_str[2] = (char)uVar21;
        goto LAB_000312bc;
      }
      pEVar20 = param_6;
      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);
      puVar37 = *(undefined **)(puVar30 + -0x88);
      uVar19 = param_4;
LAB_00030f04:
      piVar16 = *(int **)(puVar30 + -0x54);
LAB_00030f08:
      if (*piVar16 < 0) {
        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);
        pEVar20 = (Elf32_Ehdr *)0x0;
        (**(code **)(puVar37 + -0x7a84))(param_1);
        puVar37 = *(undefined **)(puVar30 + -0x88);
        param_1->e_ident_class = 0;
        param_1->e_ident_data = 0;
        param_1->e_ident_version = 0;
        param_1->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    piVar16 = *(int **)(puVar30 + -0x40);
    piVar7 = *(int **)(puVar30 + -0x58);
    if (piVar16 != (int *)0x0) {
      pcVar41 = *(code **)(puVar37 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar41 = *(code **)(puVar36 + 0x66c10);
    *(uint *)(puVar30 + -0x3c) = param_4;
    *(undefined4 *)(puVar30 + -0x34) = 1;
    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;
    (*pcVar41)();
    puVar37 = *(undefined **)(puVar30 + -0x88);
LAB_00030c64:
    piVar7 = *(int **)(puVar30 + -0x58);
  }
  if (*(int *)(puVar30 + -0x2c) == *piVar7) {
    return *piVar7;
  }
  pcVar41 = *(code **)(puVar37 + -0x7b70);
  uVar27 = 0x3153c;
  (*pcVar41)();
  pcVar38 = pcVar41 + 0x6db00;
  puVar11 = puVar3 + -0x38;
  *(uint *)(puVar3 + -0x10) = uVar19;
  piVar7 = *(int **)(pcVar41 + 0x66000);
  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;
  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;
  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;
  *(undefined4 *)(puVar3 + -4) = uVar27;
  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;
  *(code **)(puVar3 + -0x28) = pcVar38;
  *(int *)(puVar3 + -0x1c) = *piVar7;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {
    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {
      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar32 = (Elf32_Ehdr *)piVar16[2];
    }
    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);
    pcVar38 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);
    uVar19 = 8;
    do {
      uVar22 = uVar19;
      pEVar31 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar19 = uVar22 - 1;
    } while (pEVar31 < pEVar20);
    if (uVar22 == 0) {
      trap(7);
    }
    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar19 < 0x7f01) {
      iVar13 = -(uVar19 + 7 & 0xfffffff8);
      puVar11 = puVar3 + iVar13 + -0x38;
      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);
    }
    else {
      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    iVar15 = 0;
    uVar29 = 1;
    iVar13 = 0;
    uVar19 = 0;
    uVar22 = 6;
    do {
      uVar43 = uVar19 + 1;
      iVar18 = iVar13;
      uVar44 = uVar22;
      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {
        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;
        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {
          uVar44 = uVar22 * uVar44;
        }
        else {
          iVar18 = iVar13 + 1;
          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;
        }
      }
      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);
      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;
      iVar15 = iVar15 + (uVar29 & 1);
      iVar13 = iVar18;
      uVar19 = uVar43;
      uVar22 = uVar44;
    } while (bVar1);
    if (iVar18 == 0) {
      *(uint *)piVar16[2] = uVar44;
      piVar16[1] = 1;
    }
    else {
      pcVar41 = *(code **)(pcVar38 + -0x7dbc);
      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;
      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    piVar33 = *(int **)(puVar3 + -0x20);
    if (piVar33 != (int *)0x0) {
      (**(code **)(pcVar38 + -0x7a2c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);
    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;
    piVar16[1] = 1;
    piVar33 = piVar16;
    pEVar31 = pEVar20;
    pEVar20 = pEVar28;
    puVar11 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar7) {
    return *piVar7;
  }
  pcVar41 = *(code **)(pcVar38 + -0x7b70);
  pcVar42 = __gmpz_probab_prime_p;
  (*pcVar41)();
  pcVar38 = *(code **)(pcVar41 + 0x659a8);
  *(int **)(puVar11 + -0x24) = piVar16;
  *(int **)(puVar11 + -0x20) = piVar7;
  piVar16 = *(int **)(pcVar41 + 0x65da0);
  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;
  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;
  pEVar6 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;
  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;
  *(code **)(puVar11 + -4) = pcVar42;
  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;
  *(int *)(puVar11 + -0x2c) = *piVar16;
  iVar13 = (*pcVar38)();
  puVar35 = (uint *)piVar33[2];
  iVar15 = *(int *)(puVar11 + -0x90);
  pEVar34 = (Elf32_Ehdr *)piVar33[1];
  uVar19 = *puVar35;
  if (iVar13 < 1) {
    pEVar6 = (Elf32_Ehdr *)0xf4240;
    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);
    iVar15 = *(int *)(puVar11 + -0x90);
    if (iVar13 < 1) {
      iVar13 = 0;
      if (pEVar34 != (Elf32_Ehdr *)0x0) {
        if (uVar19 < 3) {
          iVar13 = 2;
          if (uVar19 != 2) {
            iVar13 = 0;
          }
        }
        else {
          uVar22 = 3;
          if ((uVar19 & 1) != 0) {
            do {
              if (uVar22 == 0) {
                trap(7);
              }
              uVar29 = uVar19 % uVar22;
              if (uVar19 / uVar22 < uVar22) {
                iVar13 = 2;
                goto LAB_00031824;
              }
              uVar22 = uVar22 + 2;
            } while (uVar29 != 0);
            iVar13 = 0;
          }
        }
      }
      goto LAB_00031824;
    }
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;
    *(uint **)(puVar11 + -0x6c) = puVar35;
    piVar33 = (int *)(puVar11 + -0x74);
    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;
  }
  if (pEVar34 != (Elf32_Ehdr *)0x0) {
    uVar19 = uVar19 & 1;
    iVar13 = 0;
    if (uVar19 == 0) goto LAB_00031824;
    pEVar6 = pEVar34;
    if ((int)pEVar34 < 10) {
      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);
      iVar15 = *(int *)(puVar11 + -0x90);
    }
    else {
      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);
      iVar15 = *(int *)(puVar11 + -0x90);
    }
    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&
          (uVar22 != (uVar22 / 7) * 7)) &&
         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&
        ((uVar22 != (uVar22 / 0x11) * 0x11 &&
         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&
       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {
      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);
      iVar13 = *(int *)(puVar11 + -0x90);
      if (0x1f < uVar22) {
        iVar18 = 0;
        puVar30 = puVar11 + -0x68;
        uVar29 = 0x1f;
        iVar15 = 0;
LAB_00031a28:
        uVar44 = 3;
        do {
          if (uVar44 == 0) {
            trap(7);
          }
          uVar43 = uVar29 % uVar44;
          if (uVar29 / uVar44 < uVar44) {
            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {
              iVar40 = iVar15 + 1;
              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar11 + -0x7c) = puVar30;
            *(int *)(puVar11 + -0x80) = iVar18;
            *(uint *)(puVar11 + -0x84) = uVar22;
            if ((int)pEVar34 < 10) {
              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);
              iVar13 = *(int *)(puVar11 + -0x90);
              uVar22 = *(uint *)(puVar11 + -0x84);
              iVar18 = *(int *)(puVar11 + -0x80);
              puVar30 = *(undefined1 **)(puVar11 + -0x7c);
            }
            else {
              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);
              iVar13 = *(int *)(puVar11 + -0x90);
              puVar30 = *(undefined1 **)(puVar11 + -0x7c);
              iVar18 = *(int *)(puVar11 + -0x80);
              uVar22 = *(uint *)(puVar11 + -0x84);
            }
            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar44 = uVar44 + 2;
          iVar40 = iVar15;
        } while (uVar43 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);
      iVar15 = *(int *)(puVar11 + -0x90);
      pEVar6 = pEVar31;
      goto LAB_00031824;
    }
  }
  iVar13 = 0;
LAB_00031824:
  iVar18 = *(int *)(puVar11 + -0x2c);
  if (iVar18 == *piVar16) {
    return iVar13;
  }
LAB_00031c58:
  pcVar41 = *(code **)(iVar15 + -0x7b70);
  uVar27 = 0x31c64;
  (*pcVar41)();
  pcVar38 = pcVar41 + 0x6d3d0;
  pcVar10 = *(char **)(pcVar41 + 0x65518);
  *(int **)(puVar11 + -0xa8) = piVar16;
  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;
  *(code **)(puVar11 + -0xb8) = pcVar38;
  *(undefined4 *)(puVar11 + -0xa4) = uVar27;
  if (*pcVar10 == '\0') {
    pcVar38 = *(code **)(pcVar41 + 0x65990);
    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);
    *pcVar10 = '\x01';
    (*pcVar38)(uVar27);
    pcVar38 = *(code **)(puVar11 + -0xb8);
  }
  pEVar34 = pEVar6;
  if ((int)pEVar6 < 0) {
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;
  }
  iVar13 = (**(code **)(pcVar38 + -0x7f7c))
                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);
  if ((int)pEVar6 < 0) {
    iVar13 = -*(int *)(iVar18 + 4);
    *(int *)(iVar18 + 4) = iVar13;
  }
  return iVar13;
LAB_00031bcc:
  iVar15 = iVar15 + -1;
  if (iVar15 == -1) goto code_r0x00031bd8;
  uVar44 = *puVar14;
  if (uVar44 == 0) {
    trap(7);
  }
  puVar14 = puVar14 + -1;
  if (uVar19 % uVar44 == 0) {
    pEVar6 = pEVar34;
    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);
    iVar13 = 0;
    iVar15 = *(int *)(puVar11 + -0x90);
    if (iVar18 == 0) goto LAB_00031824;
    pEVar6 = (Elf32_Ehdr *)0x81;
    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar40 = 1;
  iVar15 = 0;
  uVar19 = uVar29;
LAB_00031b4c:
  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;
LAB_00031a4c:
  uVar44 = uVar29 + 2;
  iVar18 = (uint)(uVar44 < uVar29) + iVar18;
  uVar29 = uVar44;
  iVar15 = iVar40;
  if (uVar22 <= uVar44) goto LAB_00031a64;
  goto LAB_00031a28;
}


lui gp,0x7
addiu gp,gp,-0x1688
addu gp,gp,t9
addiu sp,sp,-0x58
sw s4,0x40(sp)
sw s6,0x48(sp)
sll s6,a2,0x2
lw s4,-0x7b00(gp)
sw s8,0x50(sp)
or s8,sp,zero
sltiu v0,s6,0x7f01
sw s7,0x4c(sp)
sw s5,0x44(sp)
or s5,a2,zero
sw s3,0x3c(sp)
or a2,a3,zero
sw s2,0x38(sp)
or s2,a1,zero
sw s0,0x30(sp)
or s0,a0,zero
sw ra,0x54(sp)
sw s1,0x34(sp)
sw gp,0x18(sp)
sw zero,0x28(s8)
lw v1,0x0(s4)
lw s3,0x68(s8)
lw s7,0x6c(s8)
sw v1,0x2c(s8)
beq v0,zero,0x000308a0
_addiu v0,s6,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s1,sp,0x18
subu a1,s5,s3
addiu a1,a1,0x1
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00030878
_lw t9,-0x7d50(gp)
addiu a1,a1,0x7
srl a1,a1,0x3
sll a1,a1,0x3
subu sp,sp,a1
addiu v0,sp,0x18
beq s5,zero,0x000307c0
_lw t9,-0x7fcc(gp)
addiu v1,s5,-0x1
beq v1,zero,0x0003086c
_lw a3,0x0(s2)
addiu a1,s2,0x4
or a0,s1,zero
addiu a0,a0,0x4
sw a3,-0x4(a0)
addiu a1,a1,0x4
addiu v1,v1,-0x1
bne v1,zero,0x00030798
_lw a3,-0x4(a1)
addiu s6,s6,-0x4
addu s6,s1,s6
sw a3,0x0(s6)
lw t9,-0x7fcc(gp)
or a3,s3,zero
sw v0,0x14(sp)
or a1,s5,zero
sw s7,0x10(sp)
addiu t9,t9,0x430
bal 0x00030430
_or a0,s1,zero
beq s3,zero,0x00030820
_lw gp,0x18(s8)
addiu v0,s3,-0x1
beq v0,zero,0x0003081c
_lw a1,0x0(s1)
addiu a0,s1,0x4
or v1,s0,zero
addiu v1,v1,0x4
sw a1,-0x4(v1)
addiu a0,a0,0x4
addiu v0,v0,-0x1
bne v0,zero,0x000307f8
_lw a1,-0x4(a0)
sll s3,s3,0x2
addiu s3,s3,-0x4
addu s0,s0,s3
sw a1,0x0(s0)
lw a0,0x28(s8)
bne a0,zero,0x00030890
_lw t9,-0x7a2c(gp)
lw v1,0x2c(s8)
lw v0,0x0(s4)
bne v1,v0,0x000308c4
_lw ra,0x54(s8)
or sp,s8,zero
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
or s6,s1,zero
b 0x000307bc
_sw a3,0x0(s6)
addiu a0,s8,0x28
jalr t9
_sw a2,0x24(s8)
lw gp,0x18(s8)
b 0x0003077c
_lw a2,0x24(s8)
jalr t9
_nop
b 0x0003082c
_lw gp,0x18(s8)
lw t9,-0x7d50(gp)
addiu a0,s8,0x28
sw a3,0x24(s8)
jalr t9
_or a1,s6,zero
lw gp,0x18(s8)
or s1,v0,zero
b 0x00030750
_lw a2,0x24(s8)
lw t9,-0x7b70(gp)
jalr t9
_nop
(translation_unit "int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" (function_definition "int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" identifier (parameter_list "(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" ( (parameter_declaration "Elf32_Ehdr *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "Elf32_Ehdr *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Elf32_Ehdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "Elf32_Ehdr *pEVar6;" type_identifier (pointer_declarator "*pEVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "Elf32_Ehdr *pEVar12;" type_identifier (pointer_declarator "*pEVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "Elf32_Ehdr *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "uint *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "undefined1 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "code *pcVar41;" type_identifier (pointer_declarator "*pcVar41" * identifier) ;) (declaration "code *pcVar42;" type_identifier (pointer_declarator "*pcVar42" * identifier) ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "uint uVar44;" type_identifier identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "undefined1 auStack_58 [24];" type_identifier (array_declarator "auStack_58 [24]" identifier [ number_literal ]) ;) (declaration "int *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540" identifier = (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_00097540" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar30 = auStack_58;" (assignment_expression "puVar30 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_3 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 4)" ( (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "local_30 = (int *)0x0;" (assignment_expression "local_30 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" if (parenthesized_expression "(pEVar34 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar34 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }" { (expression_statement "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar34->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar34->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar34->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar30 = auStack_58 + iVar13;" (assignment_expression "puVar30 = auStack_58 + iVar13" identifier = (binary_expression "auStack_58 + iVar13" identifier + identifier)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + iVar13)" ( (binary_expression "&stack0xffffffc0 + iVar13" (pointer_expression "&stack0xffffffc0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" else (compound_statement "{\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,pEVar34)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4" identifier = (binary_expression "(int)((int)param_3 + (1 - (int)param_5)) * 4" (cast_expression "(int)((int)param_3 + (1 - (int)param_5))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_3 + (1 - (int)param_5))" ( (binary_expression "(int)param_3 + (1 - (int)param_5)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)param_5)" ( (binary_expression "1 - (int)param_5" number_literal - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) * number_literal)) ;) (if_statement "if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" if (parenthesized_expression "(uVar19 < 0x7f01)" ( (binary_expression "uVar19 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }" { (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar30 + iVar13 + 0x18;" (assignment_expression "puVar3 = puVar30 + iVar13 + 0x18" identifier = (binary_expression "puVar30 + iVar13 + 0x18" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar30 = puVar30 + iVar13;" (assignment_expression "puVar30 = puVar30 + iVar13" identifier = (binary_expression "puVar30 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" else (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" { (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar27 = *param_2;" (assignment_expression "uVar27 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar34 = pEVar31;" (assignment_expression "pEVar34 = pEVar31" identifier = identifier) ;) }) (else_clause "else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" else (compound_statement "{\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" { (expression_statement "pEVar32 = pEVar31;" (assignment_expression "pEVar32 = pEVar31" identifier = identifier) ;) (expression_statement "puVar4 = param_2 + 1;" (assignment_expression "puVar4 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar32->e_ident_magic_str[0]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar32->e_ident_magic_str[1]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar27 = *puVar4;" (assignment_expression "uVar27 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar32->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar32->e_ident_class" & (field_expression "pEVar32->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );" (assignment_expression "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shentsize + 1" (cast_expression "(int)&pEVar34[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shentsize" & (field_expression "pEVar34[-1].e_shentsize" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar31->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar34->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar30 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar30 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar30 + 0x14)" * (cast_expression "(undefined1 **)(puVar30 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x14)" ( (binary_expression "puVar30 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;) (expression_statement "pEVar28 = param_5;" (assignment_expression "pEVar28 = param_5" identifier = identifier) ;) (expression_statement "FUN_00030430(pEVar31);" (call_expression "FUN_00030430(pEVar31)" identifier (argument_list "(pEVar31)" ( identifier ))) ;) (expression_statement "pEVar32 = param_5;" (assignment_expression "pEVar32 = param_5" identifier = identifier) ;) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" if (parenthesized_expression "(param_5 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_5 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" { (expression_statement "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);" (assignment_expression "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_5[-1].e_shstrndx + 1" (cast_expression "(int)&param_5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_5[-1].e_shstrndx" & (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar31;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar31" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar12 = param_1;" (assignment_expression "pEVar12 = param_1" identifier = identifier) ;) (expression_statement "pEVar5 = pEVar31;" (assignment_expression "pEVar5 = pEVar31" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar12 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar12 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar12" * (cast_expression "(Elf32_Ehdr **)pEVar12" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" identifier = (binary_expression "puVar3 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar5->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;" (assignment_expression "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar12->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar12->e_ident_class" & (field_expression "pEVar12->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;" (assignment_expression "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_5 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 * 4 + -4)" ( (binary_expression "(int)param_5 * 4 + -4" (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3" (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_5[-1].e_shstrndx * 4" (cast_expression "(int)&param_5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_5[-1].e_shstrndx" & (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)param_1 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_1" * (cast_expression "(Elf32_Ehdr **)param_1" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (expression_statement "piVar16 = local_30;" (assignment_expression "piVar16 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" if (parenthesized_expression "(local_30 != (int *)0x0)" ( (binary_expression "local_30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }" if (parenthesized_expression "(local_2c == *(int *)pEVar6)" ( (binary_expression "local_2c == *(int *)pEVar6" identifier == (pointer_expression "*(int *)pEVar6" * (cast_expression "(int *)pEVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)pEVar6;\n  }" { (return_statement "return *(int *)pEVar6;" return (pointer_expression "*(int *)pEVar6" * (cast_expression "(int *)pEVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar41 = __gmpz_powm_ui;" (assignment_expression "pcVar41 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar36 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = puVar36 + 0x6e770;" (assignment_expression "puVar37 = puVar36 + 0x6e770" identifier = (binary_expression "puVar36 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar36 + 0x66c70);" (assignment_expression "puVar4 = *(undefined4 **)(puVar36 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(puVar36 + 0x66c70)" * (cast_expression "(undefined4 **)(puVar36 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66c70)" ( (binary_expression "puVar36 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar39 = puVar30 + -0xa0;" (assignment_expression "puVar39 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar30 + -8)" * (cast_expression "(undefined1 **)(puVar30 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -8)" ( (binary_expression "puVar30 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" * (cast_expression "(undefined4 **)(puVar30 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x20)" ( (binary_expression "puVar30 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar30 + -4) = pcVar41;" (assignment_expression "*(code **)(puVar30 + -4) = pcVar41" (pointer_expression "*(code **)(puVar30 + -4)" * (cast_expression "(code **)(puVar30 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -4)" ( (binary_expression "puVar30 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar30 + -0x58)" * (cast_expression "(undefined4 **)(puVar30 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0xc)" ( (binary_expression "puVar30 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x10)" ( (binary_expression "puVar30 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x14)" ( (binary_expression "puVar30 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x18)" ( (binary_expression "puVar30 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x1c)" ( (binary_expression "puVar30 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x24)" ( (binary_expression "puVar30 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x28)" ( (binary_expression "puVar30 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar30 + -0x88) = puVar37;" (assignment_expression "*(undefined **)(puVar30 + -0x88) = puVar37" (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar30 + -0x54) = piVar16;" (assignment_expression "*(int **)(puVar30 + -0x54) = piVar16" (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" * (cast_expression "(undefined4 *)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" identifier = identifier) ;) (if_statement "if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" if (parenthesized_expression "(param_4 < 0x14)" ( (binary_expression "param_4 < 0x14" identifier < number_literal) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar28->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar28->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_abiversion" & (field_expression "pEVar28->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar34 = pEVar5;" (assignment_expression "pEVar34 = pEVar5" identifier = identifier) ;) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" if (parenthesized_expression "((int)pEVar5 < 0)" ( (binary_expression "(int)pEVar5 < 0" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar5" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar5" - (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar5 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar5 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }" { (expression_statement "uVar22 = param_4;" (assignment_expression "uVar22 = param_4" identifier = identifier) ;) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x66d0c))();" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x66d0c))()" identifier = (call_expression "(**(code **)(puVar36 + 0x66d0c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x66d0c))" ( (pointer_expression "**(code **)(puVar36 + 0x66d0c)" * (pointer_expression "*(code **)(puVar36 + 0x66d0c)" * (cast_expression "(code **)(puVar36 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66d0c)" ( (binary_expression "puVar36 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar29 = (uint)uVar45;" statement_identifier : (expression_statement "uVar29 = (uint)uVar45;" (assignment_expression "uVar29 = (uint)uVar45" identifier = (cast_expression "(uint)uVar45" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" ( (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" identifier = identifier) ;) }) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar34 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar34 * 4)" ( (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" { (expression_statement "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);" (assignment_expression "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar30 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar30 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar30 + -0x4c) != 1" (pointer_expression "**(int **)(puVar30 + -0x4c)" * (pointer_expression "*(int **)(puVar30 + -0x4c)" * (cast_expression "(int **)(puVar30 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar16[1] = uVar22;" (assignment_expression "piVar16[1] = uVar22" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar16[2] = 1;" (assignment_expression "*(undefined4 *)piVar16[2] = 1" (pointer_expression "*(undefined4 *)piVar16[2]" * (cast_expression "(undefined4 *)piVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar30 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x40)" * (cast_expression "(undefined4 *)(puVar30 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;" (assignment_expression "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum" (pointer_expression "*(word **)(puVar30 + -0x50)" * (cast_expression "(word **)(puVar30 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar31[-1].e_shnum" & (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar31[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar31[-1].e_shnum" & (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar20 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar20 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }" { (expression_statement "iVar13 = 0x20;" (assignment_expression "iVar13 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 0x18;\n        }" { (expression_statement "iVar13 = 0x18;" (assignment_expression "iVar13 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 1;\n        }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" { (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 8;\n        }" { (expression_statement "iVar13 = 8;" (assignment_expression "iVar13 = 8" identifier = number_literal) ;) })) (expression_statement "iVar15 = 0x19;" (assignment_expression "iVar15 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 0x11;\n        }" { (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x668bc)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x668bc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x668bc)" ( (binary_expression "puVar36 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];" (assignment_expression "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" identifier = (binary_expression "iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" identifier - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar20 >> iVar15) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar15)" ( (binary_expression "(uint)pEVar20 >> iVar15" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar30 + -0x6c) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x6c) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x6c)" * (cast_expression "(int *)(puVar30 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" { (if_statement "if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar39 = puVar30 + iVar13 + -0xa0;" (assignment_expression "puVar39 = puVar30 + iVar13 + -0xa0" identifier = (binary_expression "puVar30 + iVar13 + -0xa0" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + iVar13 + -0x88)" ( (binary_expression "puVar30 + iVar13 + -0x88" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" else (compound_statement "{\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar36 + 0x66a20))" ( (pointer_expression "**(code **)(puVar36 + 0x66a20)" * (pointer_expression "*(code **)(puVar36 + 0x66a20)" * (cast_expression "(code **)(puVar36 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66a20)" ( (binary_expression "puVar36 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar37 + -0x7ad4)" * (pointer_expression "*(code **)(puVar37 + -0x7ad4)" * (cast_expression "(code **)(puVar37 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7ad4)" ( (binary_expression "puVar37 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" * (cast_expression "(undefined4 *)(puVar30 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar11 = puVar39;" (assignment_expression "puVar11 = puVar39" identifier = identifier) ;) })) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" { (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4" (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50)" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "uVar22 = (uint)pEVar20 >> 0x10;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x10" identifier = (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (if_statement "if (uVar22 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar44 = ~(uint)pEVar20 / uVar22;" (assignment_expression "uVar44 = ~(uint)pEVar20 / uVar22" identifier = (binary_expression "~(uint)pEVar20 / uVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) / identifier)) ;) (expression_statement "in_t2 = (uint)pEVar20 & 0xffff;" (assignment_expression "in_t2 = (uint)pEVar20 & 0xffff" identifier = (binary_expression "(uint)pEVar20 & 0xffff" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar20 % uVar22 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % uVar22 << 0x10" (binary_expression "~(uint)pEVar20 % uVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) % identifier) << number_literal) | number_literal) )))) ;) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" identifier = identifier) ;) (expression_statement "in_t1 = pEVar28;" (assignment_expression "in_t1 = pEVar28" identifier = identifier) ;) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" identifier = identifier) ;) (if_statement "if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar6 < in_t3)" ( (binary_expression "pEVar6 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" ( (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar29 = uVar44 - 1;" (assignment_expression "uVar29 = uVar44 - 1" identifier = (binary_expression "uVar44 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))" ( (binary_expression "(pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar6)" ( (binary_expression "pEVar20 <= pEVar6" identifier <= identifier) )) && (parenthesized_expression "(uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" ( (comma_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3" (assignment_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2)" identifier = (call_expression "CONCAT44(pEVar6,uVar44 - 2)" identifier (argument_list "(pEVar6,uVar44 - 2)" ( identifier , (binary_expression "uVar44 - 2" identifier - number_literal) )))) , (binary_expression "pEVar6 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;" (assignment_expression "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22" identifier = (binary_expression "(uint)((int)pEVar6 - (int)in_t3) / uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar6 - (int)in_t3)" ( (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar6 - (int)in_t3)" ( (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % identifier) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" ( (binary_expression "pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2)" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar20->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + -2)" ( (binary_expression "pEVar20->e_ident_magic_str + -2" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" identifier = identifier) ;) (if_statement "if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }" if (parenthesized_expression "((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))))" ( (binary_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" (parenthesized_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44))" ( (binary_expression "pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) )))) )) && (parenthesized_expression "((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" ( (parenthesized_expression "(pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))" ( (binary_expression "pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" (binary_expression "pEVar32 < pEVar20" identifier < identifier) || (parenthesized_expression "(uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" ( (comma_expression "uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (assignment_expression "uVar22 = uVar44 - 2" identifier = (binary_expression "uVar44 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar22 = uVar44 - 1;\n    }" { (expression_statement "uVar22 = uVar44 - 1;" (assignment_expression "uVar22 = uVar44 - 1" identifier = (binary_expression "uVar44 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar22 = uVar29 << 0x10 | uVar22;" (assignment_expression "uVar22 = uVar29 << 0x10 | uVar22" identifier = (binary_expression "uVar29 << 0x10 | uVar22" (binary_expression "uVar29 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar20 * uVar22" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar6 < pEVar28)" ( (binary_expression "pEVar6 < pEVar28" identifier < identifier) )) (compound_statement "{\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar29 = pEVar6 < pEVar20 ^ 1;" (assignment_expression "uVar29 = pEVar6 < pEVar20 ^ 1" identifier = (binary_expression "pEVar6 < pEVar20 ^ 1" (binary_expression "pEVar6 < pEVar20" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" identifier = identifier) ;) (if_statement "if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar22 = (uVar22 - 1) - uVar29;" (assignment_expression "uVar22 = (uVar22 - 1) - uVar29" identifier = (binary_expression "(uVar22 - 1) - uVar29" (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" ( (binary_expression "(int)pEVar6 + (-(int)pEVar32 - (int)pEVar20)" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar32 - (int)pEVar20)" ( (binary_expression "-(int)pEVar32 - (int)pEVar20" (unary_expression "-(int)pEVar32" - (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" identifier = (cast_expression "(Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (binary_expression "pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" ( (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar29 = uVar22;" (assignment_expression "uVar29 = uVar22" identifier = identifier) ;) (if_statement "if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }" if (parenthesized_expression "(((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6))" ( (binary_expression "(pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" (parenthesized_expression "(pEVar6 < pEVar32)" ( (binary_expression "pEVar6 < pEVar32" identifier < identifier) )) && (parenthesized_expression "(uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" ( (comma_expression "uVar29 = uVar22 - 1, pEVar20 <= pEVar6" (assignment_expression "uVar29 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) , (binary_expression "pEVar20 <= pEVar6" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar20 < pEVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar20 < pEVar6)" ( (binary_expression "pEVar20 < pEVar6" identifier < identifier) ))))) , (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar28 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar28 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar29 = uVar22 - 2;\n    }" { (expression_statement "uVar29 = uVar22 - 2;" (assignment_expression "uVar29 = uVar22 - 2" identifier = (binary_expression "uVar22 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar30 + -0x44) = uVar29;" (assignment_expression "*(uint *)(puVar30 + -0x44) = uVar29" (pointer_expression "*(uint *)(puVar30 + -0x44)" * (cast_expression "(uint *)(puVar30 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" identifier = identifier) ;) (if_statement "if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" if (parenthesized_expression "((int)pEVar28 < 0)" ( (binary_expression "(int)pEVar28 < 0" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar28" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar28" - (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);" (assignment_expression "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 8" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar32 <= (int)pEVar34)" ( (binary_expression "(int)pEVar32 <= (int)pEVar34" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" identifier = (pointer_expression "*(int **)(puVar30 + -0x40)" * (cast_expression "(int **)(puVar30 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a2c)" * (cast_expression "(code **)(puVar37 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a2c)" ( (binary_expression "puVar37 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar41)();" statement_identifier : (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar22 = *(int *)(puVar30 + -0x50) + 4;" (assignment_expression "uVar22 = *(int *)(puVar30 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar30 + -0x50) + 4" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar22 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = uVar22;" (assignment_expression "*(uint *)(puVar30 + -0x70) = uVar22" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" if (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d50);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d50)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" identifier = (call_expression "(*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);" (assignment_expression "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -100) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -100) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -100)" * (cast_expression "(undefined4 *)(puVar30 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" else (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -100)" * (cast_expression "(undefined1 **)(puVar30 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }))) (expression_statement "iVar13 = *(int *)(puVar30 + -100);" (assignment_expression "iVar13 = *(int *)(puVar30 + -100)" identifier = (pointer_expression "*(int *)(puVar30 + -100)" * (cast_expression "(int *)(puVar30 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x14)" * (cast_expression "(undefined1 **)(puVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (expression_statement "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);" (call_expression "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27)" identifier (argument_list "(iVar13,pEVar6,pEVar32,uVar27)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar34;" (assignment_expression "pEVar32 = pEVar34" identifier = identifier) ;) (if_statement "if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" if (parenthesized_expression "(*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0)" ( (binary_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0" (pointer_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50))" * (cast_expression "(int *)(iVar13 + *(int *)(puVar30 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(puVar30 + -0x50))" ( (binary_expression "iVar13 + *(int *)(puVar30 + -0x50)" identifier + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" { (expression_statement "iVar13 = iVar13 + *(int *)(puVar30 + -0x70);" (assignment_expression "iVar13 = iVar13 + *(int *)(puVar30 + -0x70)" identifier = (binary_expression "iVar13 + *(int *)(puVar30 + -0x70)" identifier + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);" do (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar16 = (int *)(iVar13 + -8);" (assignment_expression "piVar16 = (int *)(iVar13 + -8)" identifier = (cast_expression "(int *)(iVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -8)" ( (binary_expression "iVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar34 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar34 << 3)" ( (binary_expression "(int)pEVar34 << 3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar16 == 0)" ( (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar34 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar34 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar34 * 8 + 4U" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -((int)pEVar34 * 8 + 8);" (assignment_expression "iVar13 = -((int)pEVar34 * 8 + 8)" identifier = (unary_expression "-((int)pEVar34 * 8 + 8)" - (parenthesized_expression "((int)pEVar34 * 8 + 8)" ( (binary_expression "(int)pEVar34 * 8 + 8" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + 0x18)" ( (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" else (compound_statement "{\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" if (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" if (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 8U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -0x74)" * (cast_expression "(undefined1 **)(puVar30 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" else (compound_statement "{\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" { (expression_statement "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" identifier = (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x74) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -0x74) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar30 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar30 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -100)" * (cast_expression "(undefined4 **)(puVar30 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "puVar11 = puVar25;" (assignment_expression "puVar11 = puVar25" identifier = identifier) ;) (if_statement "if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" ( (binary_expression "puVar25 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar32[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "(param_4 >> 1) - 1" (parenthesized_expression "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar13 = 0x1f - (int)param_1;" (assignment_expression "iVar13 = 0x1f - (int)param_1" identifier = (binary_expression "0x1f - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) (if_statement "if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }" { (if_statement "if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" if (parenthesized_expression "(pEVar34 == pEVar32)" ( (binary_expression "pEVar34 == pEVar32" identifier == identifier) )) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" { (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" identifier = (binary_expression "*(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        }" { (expression_statement "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar13 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar13 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -4)" ( (binary_expression "iVar13 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar25 = puVar25 + -1;" (assignment_expression "puVar25 = puVar25 + -1" identifier = (binary_expression "puVar25 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + -4)" ( (binary_expression "pbVar8 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;" if (parenthesized_expression "(pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4))" ( (binary_expression "pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + -4)" ( (binary_expression "pbVar8 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031264;" goto statement_identifier ;)) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;) })) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar25 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar20 = param_6;" statement_identifier : (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;)) (expression_statement "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);" (call_expression "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" else (compound_statement "{\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" { (expression_statement "*(uint *)(puVar30 + 8) = param_4;" (assignment_expression "*(uint *)(puVar30 + 8) = param_4" (pointer_expression "*(uint *)(puVar30 + 8)" * (cast_expression "(uint *)(puVar30 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 8)" ( (binary_expression "puVar30 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (binary_expression "(param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "(param_4 << ((uint)param_1 & 0x1f))" ( (binary_expression "param_4 << ((uint)param_1 & 0x1f)" identifier << (parenthesized_expression "((uint)param_1 & 0x1f)" ( (binary_expression "(uint)param_1 & 0x1f" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;" (assignment_expression "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (pointer_expression "*(char **)(puVar30 + -0x80)" * (cast_expression "(char **)(puVar30 + -0x80)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) )))) = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar30 + -0x7c)" * (cast_expression "(int *)(puVar30 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar37 + -0x7fcc)" * (cast_expression "(int *)(puVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7fcc)" ( (binary_expression "puVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);" do (compound_statement "{\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" { (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);" (call_expression "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7cac))" ( (pointer_expression "**(code **)(puVar37 + -0x7cac)" * (pointer_expression "*(code **)(puVar37 + -0x7cac)" * (cast_expression "(code **)(puVar37 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7cac)" ( (binary_expression "puVar37 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar6,param_6,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60))" ( (binary_expression "(int)param_3 * 2 + *(int *)(puVar30 + -0x60)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" { (expression_statement "uVar24._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar8;" (assignment_expression "uVar24 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d8c)" * (cast_expression "(code **)(puVar37 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d8c)" ( (binary_expression "puVar37 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" else (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x7c)" * (cast_expression "(code **)(puVar30 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar27._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar27._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar27._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar27._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar27._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar27._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar27._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar27._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar27._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar27._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar27._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar27._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" else (compound_statement "{\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" { (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar27 = *(undefined4 *)pbVar8;" (assignment_expression "uVar27 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)param_3;" (assignment_expression "pbVar8 = (byte *)param_3" identifier = (cast_expression "(byte *)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = uVar27;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = uVar27" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" * (cast_expression "(undefined4 **)(puVar30 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d8c)" * (cast_expression "(code **)(puVar37 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d8c)" ( (binary_expression "puVar37 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) (if_statement "if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" if (parenthesized_expression "((int)param_1 < 0)" ( (binary_expression "(int)param_1 < 0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -100);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -100)" * (cast_expression "(undefined4 *)(puVar30 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(*pcVar41)(pEVar6,param_6,param_3,uVar27);" (call_expression "(*pcVar41)(pEVar6,param_6,param_3,uVar27)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_6,param_3,uVar27)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(param_3->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3->e_ident_magic_str + -2)" ( (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) + (unary_expression "-(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" - (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (cast_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" ( (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)" (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(param_3->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3->e_ident_magic_str + -2)" ( (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) + (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) == number_literal) ))))) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" { (expression_statement "uVar26._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar26._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar26._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar26._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar26._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar26._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar26._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar26._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar26._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar26._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" else (compound_statement "{\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" { (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)pbVar8;" (assignment_expression "uVar26 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" else (compound_statement "{\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x7c)" * (cast_expression "(code **)(puVar30 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar6" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar6" * (cast_expression "(Elf32_Ehdr **)pEVar6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar6;" (assignment_expression "pEVar31 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }" { (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_6" * (cast_expression "(Elf32_Ehdr **)param_6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar28" * (cast_expression "(Elf32_Ehdr **)pEVar28" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar31->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = pEVar20;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = pEVar20" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" * (cast_expression "(undefined4 **)(puVar30 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "param_1 = (Elf32_Ehdr *)((int)param_1 << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((int)param_1 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_1 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 << 1)" ( (binary_expression "(int)param_1 << 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) ;) (expression_statement "param_4 = *(uint *)(puVar30 + 8);" (assignment_expression "param_4 = *(uint *)(puVar30 + 8)" identifier = (pointer_expression "*(uint *)(puVar30 + 8)" * (cast_expression "(uint *)(puVar30 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 8)" ( (binary_expression "puVar30 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;" statement_identifier : (expression_statement "pEVar31 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar28 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar28 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" statement_identifier : (if_statement "if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" if (parenthesized_expression "((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0))" ( (binary_expression "(0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)param_3)" ( (binary_expression "0 < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" ( (binary_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" * (cast_expression "(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" { (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);" do (compound_statement "{\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        }" { (expression_statement "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" ( (binary_expression "(uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" ( (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" identifier = (cast_expression "(char *)(pbVar8 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + -8)" ( (binary_expression "pbVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar10 == 0)" ( (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" * (cast_expression "(int *)pcVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) }))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" if (parenthesized_expression "((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" ( (binary_expression "(uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" ( (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);" statement_identifier : (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar16 < (int)param_3) goto LAB_00031474;" if (parenthesized_expression "(*piVar16 < (int)param_3)" ( (binary_expression "*piVar16 < (int)param_3" (pointer_expression "*piVar16" * identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        uVar19 = param_4 & 1;" statement_identifier : (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" else (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" { (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x68) + 8" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar20 = param_1;" (assignment_expression "pEVar20 = param_1" identifier = identifier) ;) (expression_statement "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" identifier = (call_expression "(**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7b2c))" ( (pointer_expression "**(code **)(puVar37 + -0x7b2c)" * (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(param_6,param_1,param_6,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" statement_identifier : (if_statement "if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" if (parenthesized_expression "((param_6 == param_1) || ((int)pEVar34 <= (int)param_3))" ( (binary_expression "(param_6 == param_1) || ((int)pEVar34 <= (int)param_3)" (parenthesized_expression "(param_6 == param_1)" ( (binary_expression "param_6 == param_1" identifier == identifier) )) || (parenthesized_expression "((int)pEVar34 <= (int)param_3)" ( (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);" do (compound_statement "{\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          }" { (expression_statement "uVar27 = *(undefined4 *)pbVar9;" (assignment_expression "uVar27 = *(undefined4 *)pbVar9" identifier = (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar8 = uVar27;" (assignment_expression "*(undefined4 *)pbVar8 = uVar27" (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar20 != (Elf32_Ehdr *)pbVar9)" ( (binary_expression "pEVar20 != (Elf32_Ehdr *)pbVar9" identifier != (cast_expression "(Elf32_Ehdr *)pbVar9" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" identifier = (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" else (compound_statement "{\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" { (if_statement "if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pbVar8;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pbVar8" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar8" * (cast_expression "(Elf32_Ehdr **)pbVar8" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar9" * (cast_expression "(undefined1 **)pbVar9" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar20[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar20[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shstrndx" & (field_expression "pEVar20[-1].e_shstrndx" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" identifier = identifier) ;) (while_statement "while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" while (parenthesized_expression "(param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)" ( (comma_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0" (assignment_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)param_3->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" { (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar34 == param_3) goto LAB_00031130;" if (parenthesized_expression "(pEVar34 == param_3)" ( (binary_expression "pEVar34 == param_3" identifier == identifier) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);" (assignment_expression "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar31[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar31[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar31[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar31[-1].e_shstrndx" & (field_expression "pEVar31[-1].e_shstrndx" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar9 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pbVar9 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pbVar9" * (cast_expression "(Elf32_Ehdr **)pbVar9" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);" statement_identifier : (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" identifier = (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + iVar13 + -1)" ( (binary_expression "param_6->e_ident_magic_str + iVar13 + -1" (binary_expression "param_6->e_ident_magic_str + iVar13" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar13._0_1_ = pEVar31->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar31->e_ident_magic_num" (field_expression "iVar13._0_1_" identifier . field_identifier) = (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar13._1_1_ = pEVar31->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar31->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._2_1_ = pEVar31->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar31->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._3_1_ = pEVar31->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar31->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" { (expression_statement "iVar13 = *(int *)(puVar30 + -0x78);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x78)" identifier = (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (do_statement "do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);" do (compound_statement "{\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          }" { (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" identifier = (cast_expression "(char *)(pbVar8 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + -8)" ( (binary_expression "pbVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar10 == 0)" ( (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" * (cast_expression "(int *)pcVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) (expression_statement "*(int *)(puVar30 + -0x78) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x78) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78))" ( (binary_expression "**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)" (pointer_expression "**(int **)(puVar30 + -0x54)" * (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar20 = param_3;" statement_identifier : (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;)) (expression_statement "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54));" (call_expression "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54))" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(*(undefined4 *)(puVar30 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)param_6" identifier = (pointer_expression "*(Elf32_Ehdr **)param_6" * (cast_expression "(Elf32_Ehdr **)param_6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);" (assignment_expression "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 8" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar23;" (assignment_expression "puVar4 = puVar23" identifier = identifier) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar20;" (assignment_expression "*puVar4 = pEVar20" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar23 = pEVar20;" (assignment_expression "*puVar23 = pEVar20" (pointer_expression "*puVar23" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);" (assignment_expression "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" identifier = (call_expression "(**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar37 + -0x7ad4)" * (pointer_expression "*(code **)(puVar37 + -0x7ad4)" * (cast_expression "(code **)(puVar37 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7ad4)" ( (binary_expression "puVar37 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar6,param_6,param_3,pEVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" identifier = (pointer_expression "*(int *)(puVar30 + -0x88)" * (cast_expression "(int *)(puVar30 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = (int)param_3 * 4;" (assignment_expression "iVar13 = (int)param_3 * 4" identifier = (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str + ((iVar15 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar15 != 0) - 1)" ( (binary_expression "(iVar15 != 0) - 1" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;" (assignment_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + iVar13 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str + iVar13 + -1" (binary_expression "pEVar6->e_ident_magic_str + iVar13" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pEVar28;" (assignment_expression "param_1 = pEVar28" identifier = identifier) ;) (if_statement "if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar34 <= (int)param_3)" ( (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030430(pEVar6,param_3,uVar27,pEVar34);" (call_expression "FUN_00030430(pEVar6,param_3,uVar27,pEVar34)" identifier (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" identifier = (pointer_expression "*(int *)(puVar30 + -0x88)" * (cast_expression "(int *)(puVar30 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar17._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar17._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar17._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar17._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar17._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar17._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar17._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" else (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" { (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar17._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar17._0_1_ = pEVar20->e_ident_class" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar17._1_1_ = pEVar20->e_ident_data" (field_expression "uVar17._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar17._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar17._2_1_ = pEVar20->e_ident_version" (field_expression "uVar17._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar17._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar17._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar17._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" * (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar20 = param_6;" statement_identifier : (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar18 + -0x7ae0)" * (pointer_expression "*(code **)(iVar18 + -0x7ae0)" * (cast_expression "(code **)(iVar18 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + -0x7ae0)" ( (binary_expression "iVar18 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" * (cast_expression "(undefined4 *)(puVar30 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar21._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar21._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar21._0_1_ = pEVar20->e_ident_class" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar21._1_1_ = pEVar20->e_ident_data" (field_expression "uVar21._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar21._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar21._2_1_ = pEVar20->e_ident_version" (field_expression "uVar21._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar21._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar21._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar21._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28)" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar18 + -0x7ae0)" * (pointer_expression "*(code **)(iVar18 + -0x7ae0)" * (cast_expression "(code **)(iVar18 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + -0x7ae0)" ( (binary_expression "iVar18 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,0,pEVar28)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar16 < 0)" ( (binary_expression "*piVar16 < 0" (pointer_expression "*piVar16" * identifier) < number_literal) )) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }" { (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar37 + -0x7a84))(param_1);" (call_expression "(**(code **)(puVar37 + -0x7a84))(param_1)" (parenthesized_expression "(**(code **)(puVar37 + -0x7a84))" ( (pointer_expression "**(code **)(puVar37 + -0x7a84)" * (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "param_1->e_ident_class = 0;" (assignment_expression "param_1->e_ident_class = 0" (field_expression "param_1->e_ident_class" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_data = 0;" (assignment_expression "param_1->e_ident_data = 0" (field_expression "param_1->e_ident_data" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_version = 0;" (assignment_expression "param_1->e_ident_version = 0" (field_expression "param_1->e_ident_version" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_osabi = 0;" (assignment_expression "param_1->e_ident_osabi = 0" (field_expression "param_1->e_ident_osabi" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" identifier = (pointer_expression "*(int **)(puVar30 + -0x40)" * (cast_expression "(int **)(puVar30 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" identifier = (pointer_expression "*(int **)(puVar30 + -0x58)" * (cast_expression "(int **)(puVar30 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a2c)" * (cast_expression "(code **)(puVar37 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a2c)" ( (binary_expression "puVar37 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" else (compound_statement "{\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" { (expression_statement "pcVar41 = *(code **)(puVar36 + 0x66c10);" (assignment_expression "pcVar41 = *(code **)(puVar36 + 0x66c10)" identifier = (pointer_expression "*(code **)(puVar36 + 0x66c10)" * (cast_expression "(code **)(puVar36 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66c10)" ( (binary_expression "puVar36 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x3c) = param_4;" (assignment_expression "*(uint *)(puVar30 + -0x3c) = param_4" (pointer_expression "*(uint *)(puVar30 + -0x3c)" * (cast_expression "(uint *)(puVar30 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x34)" * (cast_expression "(undefined4 *)(puVar30 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" * (cast_expression "(undefined1 **)(puVar30 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);" statement_identifier : (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" identifier = (pointer_expression "*(int **)(puVar30 + -0x58)" * (cast_expression "(int **)(puVar30 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }" if (parenthesized_expression "(*(int *)(puVar30 + -0x2c) == *piVar7)" ( (binary_expression "*(int *)(puVar30 + -0x2c) == *piVar7" (pointer_expression "*(int *)(puVar30 + -0x2c)" * (cast_expression "(int *)(puVar30 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return *piVar7;\n  }" { (return_statement "return *piVar7;" return (pointer_expression "*piVar7" * identifier) ;) })) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b70)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b70)" * (cast_expression "(code **)(puVar37 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b70)" ( (binary_expression "puVar37 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = 0x3153c;" (assignment_expression "uVar27 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar41 + 0x6db00;" (assignment_expression "pcVar38 = pcVar41 + 0x6db00" identifier = (binary_expression "pcVar41 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(uint *)(puVar3 + -0x10) = uVar19;" (assignment_expression "*(uint *)(puVar3 + -0x10) = uVar19" (pointer_expression "*(uint *)(puVar3 + -0x10)" * (cast_expression "(uint *)(puVar3 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x10)" ( (binary_expression "puVar3 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar7 = *(int **)(pcVar41 + 0x66000);" (assignment_expression "piVar7 = *(int **)(pcVar41 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar41 + 0x66000)" * (cast_expression "(int **)(pcVar41 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x66000)" ( (binary_expression "pcVar41 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0" (pointer_expression "*(undefined1 **)(puVar3 + -8)" * (cast_expression "(undefined1 **)(puVar3 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -8)" ( (binary_expression "puVar3 + -8" identifier + number_literal) )))) = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x14)" ( (binary_expression "puVar3 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x18)" ( (binary_expression "puVar3 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar27" (pointer_expression "*(undefined4 *)(puVar3 + -4)" * (cast_expression "(undefined4 *)(puVar3 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -4)" ( (binary_expression "puVar3 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0xc)" ( (binary_expression "puVar3 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar38;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar38" (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar3 + -0x1c) = *piVar7;" (assignment_expression "*(int *)(puVar3 + -0x1c) = *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar20" (cast_expression "(Elf32_Ehdr *)&DAT_00000004" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier)) < identifier) )) (compound_statement "{\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }" { (if_statement "if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" if (parenthesized_expression "(*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1))" ( (binary_expression "*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (pointer_expression "*piVar16" * identifier) < (cast_expression "(int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1" (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6)" (parenthesized_expression "((uint)pEVar20 >> 5)" ( (binary_expression "(uint)pEVar20 >> 5" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar20 >> 6)" ( (binary_expression "(uint)pEVar20 >> 6" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar41 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar41 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar41 + 0x6607c)" * (pointer_expression "*(code **)(pcVar41 + 0x6607c)" * (cast_expression "(code **)(pcVar41 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x6607c)" ( (binary_expression "pcVar41 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" else (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar16[2];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar16[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar16[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" identifier = (call_expression "(**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar38 + -0x7efc)" * (pointer_expression "*(code **)(pcVar38 + -0x7efc)" * (cast_expression "(code **)(pcVar38 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7efc)" ( (binary_expression "pcVar38 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar32,pEVar20)" ( identifier , identifier )))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar38 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar38 + -0x7c6c)" * (cast_expression "(int *)(pcVar38 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7c6c)" ( (binary_expression "pcVar38 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);" do (compound_statement "{\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    }" { (expression_statement "uVar22 = uVar19;" (assignment_expression "uVar22 = uVar19" identifier = identifier) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" identifier = (binary_expression "puVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar22 - 1;" (assignment_expression "uVar19 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar31 < pEVar20)" ( (binary_expression "pEVar31 < pEVar20" identifier < identifier) )) ;) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;" (assignment_expression "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4" identifier = (binary_expression "((iVar13 + 1U) / uVar22 + 1) * 4" (parenthesized_expression "((iVar13 + 1U) / uVar22 + 1)" ( (binary_expression "(iVar13 + 1U) / uVar22 + 1" (binary_expression "(iVar13 + 1U) / uVar22" (parenthesized_expression "(iVar13 + 1U)" ( (binary_expression "iVar13 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar3 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar3 + -0x20)" * (cast_expression "(undefined4 *)(puVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(uVar19 < 0x7f01)" ( (binary_expression "uVar19 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }" { (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar11 = puVar3 + iVar13 + -0x38;" (assignment_expression "puVar11 = puVar3 + iVar13 + -0x38" identifier = (binary_expression "puVar3 + iVar13 + -0x38" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + -0x28)" ( (binary_expression "puVar3 + iVar13 + -0x28" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar38 + -0x7d50)" * (pointer_expression "*(code **)(pcVar38 + -0x7d50)" * (cast_expression "(code **)(pcVar38 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7d50)" ( (binary_expression "pcVar38 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 6;" (assignment_expression "uVar22 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);" do (compound_statement "{\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    }" { (expression_statement "uVar43 = uVar19 + 1;" (assignment_expression "uVar43 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar13;" (assignment_expression "iVar18 = iVar13" identifier = identifier) ;) (expression_statement "uVar44 = uVar22;" (assignment_expression "uVar44 = uVar22" identifier = identifier) ;) (if_statement "if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" if (parenthesized_expression "((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0)" ( (binary_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0" (parenthesized_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1))" ( (binary_expression "uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" * (cast_expression "(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4 + -1" (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" { (expression_statement "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;" (assignment_expression "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3" identifier = (binary_expression "(uVar43 & 1) + 1 + uVar43 * 3" (binary_expression "(uVar43 & 1) + 1" (parenthesized_expression "(uVar43 & 1)" ( (binary_expression "uVar43 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar43 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" ( (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20" (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar20)" identifier (argument_list "(pEVar20)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar44 = uVar22 * uVar44;\n        }" { (expression_statement "uVar44 = uVar22 * uVar44;" (assignment_expression "uVar44 = uVar22 * uVar44" identifier = (binary_expression "uVar22 * uVar44" identifier * identifier)) ;) }) (else_clause "else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" else (compound_statement "{\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" { (expression_statement "iVar18 = iVar13 + 1;" (assignment_expression "iVar18 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" * (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar13 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);" (assignment_expression "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f)" identifier = (binary_expression "uVar29 * 2 - ((int)uVar29 >> 0x1f)" (binary_expression "uVar29 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar29 >> 0x1f)" ( (binary_expression "(int)uVar29 >> 0x1f" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar20[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shentsize + 1" (cast_expression "(int)&pEVar20[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shentsize" & (field_expression "pEVar20[-1].e_shentsize" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar15 = iVar15 + (uVar29 & 1);" (assignment_expression "iVar15 = iVar15 + (uVar29 & 1)" identifier = (binary_expression "iVar15 + (uVar29 & 1)" identifier + (parenthesized_expression "(uVar29 & 1)" ( (binary_expression "uVar29 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar13 = iVar18;" (assignment_expression "iVar13 = iVar18" identifier = identifier) ;) (expression_statement "uVar19 = uVar43;" (assignment_expression "uVar19 = uVar43" identifier = identifier) ;) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }" { (expression_statement "*(uint *)piVar16[2] = uVar44;" (assignment_expression "*(uint *)piVar16[2] = uVar44" (pointer_expression "*(uint *)piVar16[2]" * (cast_expression "(uint *)piVar16[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7dbc);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7dbc)" * (cast_expression "(code **)(pcVar38 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7dbc)" ( (binary_expression "pcVar38 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" * (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar41)(piVar16,pEVar31,iVar18 + 1);" (call_expression "(*pcVar41)(piVar16,pEVar31,iVar18 + 1)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(piVar16,pEVar31,iVar18 + 1)" ( identifier , identifier , (binary_expression "iVar18 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar33 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar33 = *(int **)(puVar3 + -0x20)" identifier = (pointer_expression "*(int **)(puVar3 + -0x20)" * (cast_expression "(int **)(puVar3 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar38 + -0x7a2c))();" (call_expression "(**(code **)(pcVar38 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar38 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar38 + -0x7a2c)" * (cast_expression "(code **)(pcVar38 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7a2c)" ( (binary_expression "pcVar38 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c)" (binary_expression "(int)pEVar20 * 4" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar41 + 0x65b2c)" * (cast_expression "(int *)(pcVar41 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar41 + 0x65b2c)" ( (binary_expression "pcVar41 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;" (assignment_expression "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28" (pointer_expression "*(undefined4 *)piVar16[2]" * (cast_expression "(undefined4 *)piVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar28" * (cast_expression "(undefined4 *)pEVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar33 = piVar16;" (assignment_expression "piVar33 = piVar16" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" identifier = identifier) ;) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }" if (parenthesized_expression "(*(int *)(puVar3 + -0x1c) == *piVar7)" ( (binary_expression "*(int *)(puVar3 + -0x1c) == *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return *piVar7;\n  }" { (return_statement "return *piVar7;" return (pointer_expression "*piVar7" * identifier) ;) })) (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7b70)" * (cast_expression "(code **)(pcVar38 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7b70)" ( (binary_expression "pcVar38 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = __gmpz_probab_prime_p;" (assignment_expression "pcVar42 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x659a8);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar41 + 0x659a8)" * (cast_expression "(code **)(pcVar41 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x659a8)" ( (binary_expression "pcVar41 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar11 + -0x24)" * (cast_expression "(int **)(puVar11 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x20) = piVar7;" (assignment_expression "*(int **)(puVar11 + -0x20) = piVar7" (pointer_expression "*(int **)(puVar11 + -0x20)" * (cast_expression "(int **)(puVar11 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = *(int **)(pcVar41 + 0x65da0);" (assignment_expression "piVar16 = *(int **)(pcVar41 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar41 + 0x65da0)" * (cast_expression "(int **)(pcVar41 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65da0)" ( (binary_expression "pcVar41 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;" (assignment_expression "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0" (pointer_expression "*(code **)(puVar11 + -0x90)" * (cast_expression "(code **)(puVar11 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar41 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar11 + -4) = pcVar42;" (assignment_expression "*(code **)(puVar11 + -4) = pcVar42" (pointer_expression "*(code **)(puVar11 + -4)" * (cast_expression "(code **)(puVar11 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -4)" ( (binary_expression "puVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar11 + -8)" * (cast_expression "(undefined1 **)(puVar11 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x2c) = *piVar16;" (assignment_expression "*(int *)(puVar11 + -0x2c) = *piVar16" (pointer_expression "*(int *)(puVar11 + -0x2c)" * (cast_expression "(int *)(puVar11 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar13 = (*pcVar38)();" (assignment_expression "iVar13 = (*pcVar38)()" identifier = (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar35 = (uint *)piVar33[2];" (assignment_expression "puVar35 = (uint *)piVar33[2]" identifier = (cast_expression "(uint *)piVar33[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar33[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)piVar33[1];" (assignment_expression "pEVar34 = (Elf32_Ehdr *)piVar33[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar33[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar33[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = *puVar35;" (assignment_expression "uVar19 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (if_statement "if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33)" identifier = (call_expression "(**(code **)(iVar15 + -0x7ab8))(piVar33)" (parenthesized_expression "(**(code **)(iVar15 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar15 + -0x7ab8)" * (pointer_expression "*(code **)(iVar15 + -0x7ab8)" * (cast_expression "(code **)(iVar15 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7ab8)" ( (binary_expression "iVar15 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(piVar33)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" if (parenthesized_expression "(uVar19 < 3)" ( (binary_expression "uVar19 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }" { (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (if_statement "if (uVar19 != 2) {\n            iVar13 = 0;\n          }" if (parenthesized_expression "(uVar19 != 2)" ( (binary_expression "uVar19 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar13 = 0;\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" else (compound_statement "{\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" { (expression_statement "uVar22 = 3;" (assignment_expression "uVar22 = 3" identifier = number_literal) ;) (if_statement "if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" if (parenthesized_expression "((uVar19 & 1) != 0)" ( (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" { (do_statement "do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);" do (compound_statement "{\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            }" { (if_statement "if (uVar22 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar29 = uVar19 % uVar22;" (assignment_expression "uVar29 = uVar19 % uVar22" identifier = (binary_expression "uVar19 % uVar22" identifier % identifier)) ;) (if_statement "if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" if (parenthesized_expression "(uVar19 / uVar22 < uVar22)" ( (binary_expression "uVar19 / uVar22 < uVar22" (binary_expression "uVar19 / uVar22" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" { (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "uVar22 = uVar22 + 2;" (assignment_expression "uVar22 = uVar22 + 2" identifier = (binary_expression "uVar22 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar34" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar34" - (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar11 + -0x6c) = puVar35;" (assignment_expression "*(uint **)(puVar11 + -0x6c) = puVar35" (pointer_expression "*(uint **)(puVar11 + -0x6c)" * (cast_expression "(uint **)(puVar11 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x6c)" ( (binary_expression "puVar11 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar33 = (int *)(puVar11 + -0x74);" (assignment_expression "piVar33 = (int *)(puVar11 + -0x74)" identifier = (cast_expression "(int *)(puVar11 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x74)" ( (binary_expression "puVar11 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x70)" ( (binary_expression "puVar11 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" if (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" { (expression_statement "uVar19 = uVar19 & 1;" (assignment_expression "uVar19 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (uVar19 == 0) goto LAB_00031824;" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" identifier = identifier) ;) (if_statement "if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar34 < 10)" ( (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c24))" ( (pointer_expression "**(code **)(iVar15 + -0x7c24)" * (pointer_expression "*(code **)(iVar15 + -0x7c24)" * (cast_expression "(code **)(iVar15 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c24)" ( (binary_expression "iVar15 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" else (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar15 + -0x7b80))" ( (pointer_expression "**(code **)(iVar15 + -0x7b80)" * (pointer_expression "*(code **)(iVar15 + -0x7b80)" * (cast_expression "(code **)(iVar15 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b80)" ( (binary_expression "iVar15 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" if (parenthesized_expression "((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))))" ( (binary_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7))" ( (binary_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)" (parenthesized_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5))" ( (binary_expression "(uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)" (parenthesized_expression "(uVar22 != (uVar22 / 3) * 3)" ( (binary_expression "uVar22 != (uVar22 / 3) * 3" identifier != (binary_expression "(uVar22 / 3) * 3" (parenthesized_expression "(uVar22 / 3)" ( (binary_expression "uVar22 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar22 != (uVar22 / 5) * 5)" ( (binary_expression "uVar22 != (uVar22 / 5) * 5" identifier != (binary_expression "(uVar22 / 5) * 5" (parenthesized_expression "(uVar22 / 5)" ( (binary_expression "uVar22 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar22 != (uVar22 / 7) * 7)" ( (binary_expression "uVar22 != (uVar22 / 7) * 7" identifier != (binary_expression "(uVar22 / 7) * 7" (parenthesized_expression "(uVar22 / 7)" ( (binary_expression "uVar22 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))" ( (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)" (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb" identifier != (binary_expression "(uVar22 / 0xb) * 0xb" (parenthesized_expression "(uVar22 / 0xb)" ( (binary_expression "uVar22 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar22 != (uVar22 / 0xd) * 0xd)" ( (binary_expression "uVar22 != (uVar22 / 0xd) * 0xd" identifier != (binary_expression "(uVar22 / 0xd) * 0xd" (parenthesized_expression "(uVar22 / 0xd)" ( (binary_expression "uVar22 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))" ( (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11" identifier != (binary_expression "(uVar22 / 0x11) * 0x11" (parenthesized_expression "(uVar22 / 0x11)" ( (binary_expression "uVar22 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))" ( (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)" (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13" identifier != (binary_expression "(uVar22 / 0x13) * 0x13" (parenthesized_expression "(uVar22 / 0x13)" ( (binary_expression "uVar22 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar22 != (uVar22 / 0x17) * 0x17)" ( (binary_expression "uVar22 != (uVar22 / 0x17) * 0x17" identifier != (binary_expression "(uVar22 / 0x17) * 0x17" (parenthesized_expression "(uVar22 / 0x17)" ( (binary_expression "uVar22 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar22 != (uVar22 / 0x1d) * 0x1d)" ( (binary_expression "uVar22 != (uVar22 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar22 / 0x1d) * 0x1d" (parenthesized_expression "(uVar22 / 0x1d)" ( (binary_expression "uVar22 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2)" identifier = (call_expression "(**(code **)(iVar15 + -0x7f14))(piVar33,2)" (parenthesized_expression "(**(code **)(iVar15 + -0x7f14))" ( (pointer_expression "**(code **)(iVar15 + -0x7f14)" * (pointer_expression "*(code **)(iVar15 + -0x7f14)" * (cast_expression "(code **)(iVar15 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7f14)" ( (binary_expression "iVar15 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar33,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar22)" ( (binary_expression "0x1f < uVar22" number_literal < identifier) )) (compound_statement "{\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar30 = puVar11 + -0x68;" (assignment_expression "puVar30 = puVar11 + -0x68" identifier = (binary_expression "puVar11 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar29 = 0x1f;" (assignment_expression "uVar29 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar44 = 3;" statement_identifier : (expression_statement "uVar44 = 3;" (assignment_expression "uVar44 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);" do (compound_statement "{\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        }" { (if_statement "if (uVar44 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar44 == 0)" ( (binary_expression "uVar44 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar43 = uVar29 % uVar44;" (assignment_expression "uVar43 = uVar29 % uVar44" identifier = (binary_expression "uVar29 % uVar44" identifier % identifier)) ;) (if_statement "if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar29 / uVar44 < uVar44)" ( (binary_expression "uVar29 / uVar44 < uVar44" (binary_expression "uVar29 / uVar44" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0)" ( (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0" (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" (binary_expression "iVar18 * uVar19" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20" (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar40 = iVar15 + 1;" (assignment_expression "iVar40 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29)" identifier = (call_expression "(uint)((ulonglong)uVar19 * (ulonglong)uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar19 * (ulonglong)uVar29)" ( (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar11 + -0x7c) = puVar30;" (assignment_expression "*(undefined1 **)(puVar11 + -0x7c) = puVar30" (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x80) = iVar18;" (assignment_expression "*(int *)(puVar11 + -0x80) = iVar18" (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar11 + -0x84) = uVar22;" (assignment_expression "*(uint *)(puVar11 + -0x84) = uVar22" (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar34 < 10)" ( (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }" { (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c68))" ( (pointer_expression "**(code **)(iVar13 + -0x7c68)" * (pointer_expression "*(code **)(iVar13 + -0x7c68)" * (cast_expression "(code **)(iVar13 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c68)" ( (binary_expression "iVar13 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,uVar19,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" identifier = (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" else (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" { (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,uVar19)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" identifier = (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);" (assignment_expression "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + (iVar15 + 0x3fffffff) * 4)" ( (binary_expression "puVar30 + (iVar15 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar15 + 0x3fffffff) * 4" (parenthesized_expression "(iVar15 + 0x3fffffff)" ( (binary_expression "iVar15 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar44 = uVar44 + 2;" (assignment_expression "uVar44 = uVar44 + 2" identifier = (binary_expression "uVar44 + 2" identifier + number_literal)) ;) (expression_statement "iVar40 = iVar15;" (assignment_expression "iVar40 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar43 != 0)" ( (binary_expression "uVar43 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" statement_identifier : (expression_statement "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33)" identifier = (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar33)" (parenthesized_expression "(**(code **)(iVar13 + -0x7d48))" ( (pointer_expression "**(code **)(iVar13 + -0x7d48)" * (pointer_expression "*(code **)(iVar13 + -0x7d48)" * (cast_expression "(code **)(iVar13 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7d48)" ( (binary_expression "iVar13 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(piVar33)" ( identifier )))) ;)) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar6 = pEVar31;" (assignment_expression "pEVar6 = pEVar31" identifier = identifier) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);" statement_identifier : (expression_statement "iVar18 = *(int *)(puVar11 + -0x2c);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar11 + -0x2c)" * (cast_expression "(int *)(puVar11 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar18 == *piVar16) {\n    return iVar13;\n  }" if (parenthesized_expression "(iVar18 == *piVar16)" ( (binary_expression "iVar18 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return iVar13;\n  }" { (return_statement "return iVar13;" return identifier ;) })) (labeled_statement "LAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);" statement_identifier : (expression_statement "pcVar41 = *(code **)(iVar15 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(iVar15 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar15 + -0x7b70)" * (cast_expression "(code **)(iVar15 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b70)" ( (binary_expression "iVar15 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar27 = 0x31c64;" (assignment_expression "uVar27 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar41 + 0x6d3d0;" (assignment_expression "pcVar38 = pcVar41 + 0x6d3d0" identifier = (binary_expression "pcVar41 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar10 = *(char **)(pcVar41 + 0x65518);" (assignment_expression "pcVar10 = *(char **)(pcVar41 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar41 + 0x65518)" * (cast_expression "(char **)(pcVar41 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65518)" ( (binary_expression "pcVar41 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0xa8) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0xa8) = piVar16" (pointer_expression "*(int **)(puVar11 + -0xa8)" * (cast_expression "(int **)(puVar11 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xa8)" ( (binary_expression "puVar11 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xac)" ( (binary_expression "puVar11 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar11 + -0xb8) = pcVar38;" (assignment_expression "*(code **)(puVar11 + -0xb8) = pcVar38" (pointer_expression "*(code **)(puVar11 + -0xb8)" * (cast_expression "(code **)(puVar11 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xb8)" ( (binary_expression "puVar11 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0xa4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar11 + -0xa4) = uVar27" (pointer_expression "*(undefined4 *)(puVar11 + -0xa4)" * (cast_expression "(undefined4 *)(puVar11 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xa4)" ( (binary_expression "puVar11 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar10 == '\0')" ( (binary_expression "*pcVar10 == '\0'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" { (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x65990);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar41 + 0x65990)" * (cast_expression "(code **)(pcVar41 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65990)" ( (binary_expression "pcVar41 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);" (assignment_expression "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar41 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar41 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar41 + 0x6560c)" ( (binary_expression "pcVar41 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar10 = '\x01';" (assignment_expression "*pcVar10 = '\x01'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar38)(uVar27);" (call_expression "(*pcVar38)(uVar27)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(uVar27)" ( identifier ))) ;) (expression_statement "pcVar38 = *(code **)(puVar11 + -0xb8);" (assignment_expression "pcVar38 = *(code **)(puVar11 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar11 + -0xb8)" * (cast_expression "(code **)(puVar11 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xb8)" ( (binary_expression "puVar11 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar34 = pEVar6;" (assignment_expression "pEVar34 = pEVar6" identifier = identifier) ;) (if_statement "if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" if (parenthesized_expression "((int)pEVar6 < 0)" ( (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar6" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar6" - (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" identifier = (call_expression "(**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar38 + -0x7f7c)" * (cast_expression "(code **)(pcVar38 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7f7c)" ( (binary_expression "pcVar38 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar38 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar38 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7dc4)" ( (binary_expression "pcVar38 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar34 << 5" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" if (parenthesized_expression "((int)pEVar6 < 0)" ( (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" { (expression_statement "iVar13 = -*(int *)(iVar18 + 4);" (assignment_expression "iVar13 = -*(int *)(iVar18 + 4)" identifier = (unary_expression "-*(int *)(iVar18 + 4)" - (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar18 + 4) = iVar13;" (assignment_expression "*(int *)(iVar18 + 4) = iVar13" (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar13;" return identifier ;) (labeled_statement "LAB_00031bcc:\n  iVar15 = iVar15 + -1;" statement_identifier : (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar15 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar44 = *puVar14;" (assignment_expression "uVar44 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (uVar44 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar44 == 0)" ( (binary_expression "uVar44 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar14 = puVar14 + -1;" (assignment_expression "puVar14 = puVar14 + -1" identifier = (binary_expression "puVar14 + -1" identifier + number_literal)) ;) (if_statement "if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar19 % uVar44 == 0)" ( (binary_expression "uVar19 % uVar44 == 0" (binary_expression "uVar19 % uVar44" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" identifier = identifier) ;) (expression_statement "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);" (assignment_expression "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35)" ( identifier )))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar6 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c20))" ( (pointer_expression "**(code **)(iVar15 + -0x7c20)" * (pointer_expression "*(code **)(iVar15 + -0x7c20)" * (cast_expression "(code **)(iVar15 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c20)" ( (binary_expression "iVar15 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar40 = 1;" statement_identifier : (expression_statement "iVar40 = 1;" (assignment_expression "iVar40 = 1" identifier = number_literal) ;)) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" statement_identifier : (expression_statement "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" (assignment_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29" (pointer_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68)" * (cast_expression "(uint *)(puVar11 + iVar15 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + iVar15 * 4 + -0x68)" ( (binary_expression "puVar11 + iVar15 * 4 + -0x68" (binary_expression "puVar11 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar44 = uVar29 + 2;" statement_identifier : (expression_statement "uVar44 = uVar29 + 2;" (assignment_expression "uVar44 = uVar29 + 2" identifier = (binary_expression "uVar29 + 2" identifier + number_literal)) ;)) (expression_statement "iVar18 = (uint)(uVar44 < uVar29) + iVar18;" (assignment_expression "iVar18 = (uint)(uVar44 < uVar29) + iVar18" identifier = (binary_expression "(uint)(uVar44 < uVar29) + iVar18" (call_expression "(uint)(uVar44 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < uVar29)" ( (binary_expression "uVar44 < uVar29" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" identifier = identifier) ;) (expression_statement "iVar15 = iVar40;" (assignment_expression "iVar15 = iVar40" identifier = identifier) ;) (if_statement "if (uVar22 <= uVar44) goto LAB_00031a64;" if (parenthesized_expression "(uVar22 <= uVar44)" ( (binary_expression "uVar22 <= uVar44" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit "void reduce(mp_ptr tp,mp_srcptr ap,mp_size_t an,mp_srcptr mp,mp_size_t mn,gmp_pi1_t *dinv)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  int *piVar6;\n  word *pwVar7;\n  word *pwVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  tmp_reentrant_t *ptVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  mp_limb_t *pmVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  mp_srcptr pmVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  Elf32_Ehdr *pEVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar29;\n  Elf32_Ehdr *pEVar30;\n  mp_srcptr pmVar31;\n  Elf32_Ehdr *pEVar32;\n  mp_ptr pmVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  Elf32_Ehdr *pEVar36;\n  tmp_reentrant_t *ptVar37;\n  int in_t9;\n  code *pcVar38;\n  code *pcVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  uint uVar45;\n  uint uVar46;\n  uint uVar47;\n  undefined8 uVar48;\n  undefined1 auStack_58 [24];\n  gmp_pi1_t local_40;\n  mp_srcptr local_34;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar29 = auStack_58;\n  pEVar36 = (Elf32_Ehdr *)(an * 4);\n  pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9);\n  local_40.inv32 = in_t9 + 0x6e978;\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c._0_1_ = pEVar34->e_ident_magic_num;\n  local_2c._1_1_ = pEVar34->e_ident_magic_str[0];\n  local_2c._2_1_ = pEVar34->e_ident_magic_str[1];\n  local_2c._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (pEVar36 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);\n    puVar29 = auStack_58 + iVar13;\n    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);\n  }\n  else {\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar13 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar29 + iVar13 + 0x18;\n    puVar29 = puVar29 + iVar13;\n  }\n  else {\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }\n  if (an != 0) {\n    iVar13 = an + -1;\n    mVar26 = *ap;\n    if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar29 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar29 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar27 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar13 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar33 = tp;\n    pEVar5 = pEVar30;\n    if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }\n    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;\n  }\n  ptVar16 = __tmp_marker;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (**(code **)(local_40.inv32 - 0x7a2c))();\n  }\n  iVar13._0_1_ = pEVar34->e_ident_magic_num;\n  iVar13._1_1_ = pEVar34->e_ident_magic_str[0];\n  iVar13._2_1_ = pEVar34->e_ident_magic_str[1];\n  iVar13._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (local_2c == iVar13) {\n    return;\n  }\n  pcVar38 = *(code **)(local_40.inv32 - 0x7b70);\n  pcVar43 = __gmpz_powm_ui;\n  (*pcVar38)();\n  pcVar39 = pcVar38 + 0x6e770;\n  puVar4 = *(undefined4 **)(pcVar38 + 0x66c70);\n  puVar41 = puVar29 + -0xa0;\n  puVar3 = puVar29 + -0xa0;\n  puVar40 = puVar29 + -0xa0;\n  *(undefined1 **)(puVar29 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar29 + -0x20) = ap;\n  *(code **)(puVar29 + -4) = pcVar43;\n  *(undefined4 **)(puVar29 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar29 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar29 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar29 + -0x28) = tp;\n  *(code **)(puVar29 + -0x88) = pcVar39;\n  *(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar29 + -0x2c) = *puVar4;\n  pmVar31 = mp;\n  if (mp < (mp_srcptr)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar36 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }\n    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;\n    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);\n    uVar46 = uVar47;\n    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }\n    uVar46 = uVar18 << 0x10 | uVar46;\n    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);\n    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n    uVar18 = uVar46;\n    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }\n    *(uint *)(puVar29 + -0x44) = uVar18;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);\n    pEVar32 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar18 = *(int *)(puVar29 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar29 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    pmVar33 = *(mp_ptr *)(puVar29 + -100);\n    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;\n    pEVar20 = pEVar34;\n    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    pcVar39 = *(code **)(puVar29 + -0x88);\n    pEVar32 = pEVar36;\n    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar29 + -100);\n    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar7 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);\n    iVar13 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }\nLAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n    piVar6 = *(int **)(puVar29 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }\n  if (*(int *)(puVar29 + -0x2c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6db00;\n  puVar41 = puVar3 + -0x38;\n  *(mp_srcptr *)(puVar3 + -0x10) = pmVar31;\n  piVar6 = *(int **)(pcVar39 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30;\n  *(mp_ptr *)(puVar3 + -0x18) = tp;\n  *(undefined4 *)(puVar3 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar46 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar46 = 1;\n    iVar13 = 0;\n    uVar18 = 0;\n    ptVar35 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);\n    if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar38 + -0x7b70);\n  pcVar43 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar38 = *(code **)(pcVar39 + 0x659a8);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar6;\n  piVar6 = *(int **)(pcVar39 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar34 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar43;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar6;\n  iVar13 = (*pcVar38)();\n  ptVar37 = ptVar35[1].next;\n  iVar15 = *(int *)(puVar41 + -0x90);\n  pEVar36 = (Elf32_Ehdr *)ptVar35->size;\n  ptVar16 = ptVar37->next;\n  if (iVar13 < 1) {\n    pEVar34 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;\n    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;\n  }\n  if ((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar34 = pEVar36;\n    if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }\n  }\nLAB_00031824:\n  iVar13 = *(int *)(puVar41 + -0x2c);\n  if (iVar13 == *piVar6) {\n    return;\n  }\nLAB_00031c58:\n  pcVar39 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6d3d0;\n  pcVar12 = *(char **)(pcVar39 + 0x65518);\n  *(int **)(puVar41 + -0xa8) = piVar6;\n  *(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36;\n  *(code **)(puVar41 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar41 + -0xa4) = uVar44;\n  if (*pcVar12 == '\0') {\n    pcVar38 = *(code **)(pcVar39 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);\n    *pcVar12 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb8);\n  }\n  pEVar36 = pEVar34;\n  if ((int)pEVar34 < 0) {\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5);\n  if ((int)pEVar34 < 0) {\n    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);\n  }\n  return;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar11 = *puVar14;\n  if (uVar11 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar18 % uVar11 == 0) {\n    pEVar34 = pEVar36;\n    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 == 0) goto LAB_00031824;\n    pEVar34 = (Elf32_Ehdr *)0x81;\n    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar42 = 1;\n  iVar15 = 0;\n  uVar18 = uVar47;\nLAB_00031b4c:\n  *(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;\nLAB_00031a4c:\n  uVar11 = uVar47 + 2;\n  iVar28 = (uint)(uVar11 < uVar47) + iVar28;\n  uVar47 = uVar11;\n  iVar15 = iVar42;\n  if (uVar46 <= uVar11) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" (function_definition "void reduce(mp_ptr tp,mp_srcptr ap,mp_size_t an,mp_srcptr mp,mp_size_t mn,gmp_pi1_t *dinv)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  int *piVar6;\n  word *pwVar7;\n  word *pwVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  tmp_reentrant_t *ptVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  mp_limb_t *pmVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  mp_srcptr pmVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  Elf32_Ehdr *pEVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar29;\n  Elf32_Ehdr *pEVar30;\n  mp_srcptr pmVar31;\n  Elf32_Ehdr *pEVar32;\n  mp_ptr pmVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  Elf32_Ehdr *pEVar36;\n  tmp_reentrant_t *ptVar37;\n  int in_t9;\n  code *pcVar38;\n  code *pcVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  uint uVar45;\n  uint uVar46;\n  uint uVar47;\n  undefined8 uVar48;\n  undefined1 auStack_58 [24];\n  gmp_pi1_t local_40;\n  mp_srcptr local_34;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar29 = auStack_58;\n  pEVar36 = (Elf32_Ehdr *)(an * 4);\n  pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9);\n  local_40.inv32 = in_t9 + 0x6e978;\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c._0_1_ = pEVar34->e_ident_magic_num;\n  local_2c._1_1_ = pEVar34->e_ident_magic_str[0];\n  local_2c._2_1_ = pEVar34->e_ident_magic_str[1];\n  local_2c._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (pEVar36 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);\n    puVar29 = auStack_58 + iVar13;\n    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);\n  }\n  else {\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar13 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar29 + iVar13 + 0x18;\n    puVar29 = puVar29 + iVar13;\n  }\n  else {\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }\n  if (an != 0) {\n    iVar13 = an + -1;\n    mVar26 = *ap;\n    if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar29 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar29 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar27 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar13 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar33 = tp;\n    pEVar5 = pEVar30;\n    if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }\n    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;\n  }\n  ptVar16 = __tmp_marker;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (**(code **)(local_40.inv32 - 0x7a2c))();\n  }\n  iVar13._0_1_ = pEVar34->e_ident_magic_num;\n  iVar13._1_1_ = pEVar34->e_ident_magic_str[0];\n  iVar13._2_1_ = pEVar34->e_ident_magic_str[1];\n  iVar13._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (local_2c == iVar13) {\n    return;\n  }\n  pcVar38 = *(code **)(local_40.inv32 - 0x7b70);\n  pcVar43 = __gmpz_powm_ui;\n  (*pcVar38)();\n  pcVar39 = pcVar38 + 0x6e770;\n  puVar4 = *(undefined4 **)(pcVar38 + 0x66c70);\n  puVar41 = puVar29 + -0xa0;\n  puVar3 = puVar29 + -0xa0;\n  puVar40 = puVar29 + -0xa0;\n  *(undefined1 **)(puVar29 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar29 + -0x20) = ap;\n  *(code **)(puVar29 + -4) = pcVar43;\n  *(undefined4 **)(puVar29 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar29 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar29 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar29 + -0x28) = tp;\n  *(code **)(puVar29 + -0x88) = pcVar39;\n  *(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar29 + -0x2c) = *puVar4;\n  pmVar31 = mp;\n  if (mp < (mp_srcptr)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar36 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }\n    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;\n    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);\n    uVar46 = uVar47;\n    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }\n    uVar46 = uVar18 << 0x10 | uVar46;\n    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);\n    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n    uVar18 = uVar46;\n    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }\n    *(uint *)(puVar29 + -0x44) = uVar18;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);\n    pEVar32 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar18 = *(int *)(puVar29 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar29 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    pmVar33 = *(mp_ptr *)(puVar29 + -100);\n    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;\n    pEVar20 = pEVar34;\n    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    pcVar39 = *(code **)(puVar29 + -0x88);\n    pEVar32 = pEVar36;\n    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar29 + -100);\n    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar7 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);\n    iVar13 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }\nLAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n    piVar6 = *(int **)(puVar29 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }\n  if (*(int *)(puVar29 + -0x2c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6db00;\n  puVar41 = puVar3 + -0x38;\n  *(mp_srcptr *)(puVar3 + -0x10) = pmVar31;\n  piVar6 = *(int **)(pcVar39 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30;\n  *(mp_ptr *)(puVar3 + -0x18) = tp;\n  *(undefined4 *)(puVar3 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar46 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar46 = 1;\n    iVar13 = 0;\n    uVar18 = 0;\n    ptVar35 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);\n    if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar38 + -0x7b70);\n  pcVar43 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar38 = *(code **)(pcVar39 + 0x659a8);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar6;\n  piVar6 = *(int **)(pcVar39 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar34 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar43;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar6;\n  iVar13 = (*pcVar38)();\n  ptVar37 = ptVar35[1].next;\n  iVar15 = *(int *)(puVar41 + -0x90);\n  pEVar36 = (Elf32_Ehdr *)ptVar35->size;\n  ptVar16 = ptVar37->next;\n  if (iVar13 < 1) {\n    pEVar34 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;\n    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;\n  }\n  if ((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar34 = pEVar36;\n    if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }\n  }\nLAB_00031824:\n  iVar13 = *(int *)(puVar41 + -0x2c);\n  if (iVar13 == *piVar6) {\n    return;\n  }\nLAB_00031c58:\n  pcVar39 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6d3d0;\n  pcVar12 = *(char **)(pcVar39 + 0x65518);\n  *(int **)(puVar41 + -0xa8) = piVar6;\n  *(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36;\n  *(code **)(puVar41 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar41 + -0xa4) = uVar44;\n  if (*pcVar12 == '\0') {\n    pcVar38 = *(code **)(pcVar39 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);\n    *pcVar12 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb8);\n  }\n  pEVar36 = pEVar34;\n  if ((int)pEVar34 < 0) {\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5);\n  if ((int)pEVar34 < 0) {\n    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);\n  }\n  return;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar11 = *puVar14;\n  if (uVar11 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar18 % uVar11 == 0) {\n    pEVar34 = pEVar36;\n    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 == 0) goto LAB_00031824;\n    pEVar34 = (Elf32_Ehdr *)0x81;\n    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar42 = 1;\n  iVar15 = 0;\n  uVar18 = uVar47;\nLAB_00031b4c:\n  *(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;\nLAB_00031a4c:\n  uVar11 = uVar47 + 2;\n  iVar28 = (uint)(uVar11 < uVar47) + iVar28;\n  uVar47 = uVar11;\n  iVar15 = iVar42;\n  if (uVar46 <= uVar11) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "reduce(mp_ptr tp,mp_srcptr ap,mp_size_t an,mp_srcptr mp,mp_size_t mn,gmp_pi1_t *dinv)" identifier (parameter_list "(mp_ptr tp,mp_srcptr ap,mp_size_t an,mp_srcptr mp,mp_size_t mn,gmp_pi1_t *dinv)" ( (parameter_declaration "mp_ptr tp" type_identifier identifier) , (parameter_declaration "mp_srcptr ap" type_identifier identifier) , (parameter_declaration "mp_size_t an" type_identifier identifier) , (parameter_declaration "mp_srcptr mp" type_identifier identifier) , (parameter_declaration "mp_size_t mn" type_identifier identifier) , (parameter_declaration "gmp_pi1_t *dinv" type_identifier (pointer_declarator "*dinv" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  int *piVar6;\n  word *pwVar7;\n  word *pwVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  char *pcVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  tmp_reentrant_t *ptVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  mp_limb_t *pmVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  mp_srcptr pmVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  Elf32_Ehdr *pEVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar29;\n  Elf32_Ehdr *pEVar30;\n  mp_srcptr pmVar31;\n  Elf32_Ehdr *pEVar32;\n  mp_ptr pmVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  Elf32_Ehdr *pEVar36;\n  tmp_reentrant_t *ptVar37;\n  int in_t9;\n  code *pcVar38;\n  code *pcVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  uint uVar45;\n  uint uVar46;\n  uint uVar47;\n  undefined8 uVar48;\n  undefined1 auStack_58 [24];\n  gmp_pi1_t local_40;\n  mp_srcptr local_34;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar29 = auStack_58;\n  pEVar36 = (Elf32_Ehdr *)(an * 4);\n  pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9);\n  local_40.inv32 = in_t9 + 0x6e978;\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c._0_1_ = pEVar34->e_ident_magic_num;\n  local_2c._1_1_ = pEVar34->e_ident_magic_str[0];\n  local_2c._2_1_ = pEVar34->e_ident_magic_str[1];\n  local_2c._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (pEVar36 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);\n    puVar29 = auStack_58 + iVar13;\n    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);\n  }\n  else {\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar13 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar29 + iVar13 + 0x18;\n    puVar29 = puVar29 + iVar13;\n  }\n  else {\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }\n  if (an != 0) {\n    iVar13 = an + -1;\n    mVar26 = *ap;\n    if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar29 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar29 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar27 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar13 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar33 = tp;\n    pEVar5 = pEVar30;\n    if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }\n    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;\n  }\n  ptVar16 = __tmp_marker;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (**(code **)(local_40.inv32 - 0x7a2c))();\n  }\n  iVar13._0_1_ = pEVar34->e_ident_magic_num;\n  iVar13._1_1_ = pEVar34->e_ident_magic_str[0];\n  iVar13._2_1_ = pEVar34->e_ident_magic_str[1];\n  iVar13._3_1_ = pEVar34->e_ident_magic_str[2];\n  if (local_2c == iVar13) {\n    return;\n  }\n  pcVar38 = *(code **)(local_40.inv32 - 0x7b70);\n  pcVar43 = __gmpz_powm_ui;\n  (*pcVar38)();\n  pcVar39 = pcVar38 + 0x6e770;\n  puVar4 = *(undefined4 **)(pcVar38 + 0x66c70);\n  puVar41 = puVar29 + -0xa0;\n  puVar3 = puVar29 + -0xa0;\n  puVar40 = puVar29 + -0xa0;\n  *(undefined1 **)(puVar29 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar29 + -0x20) = ap;\n  *(code **)(puVar29 + -4) = pcVar43;\n  *(undefined4 **)(puVar29 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar29 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar29 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar29 + -0x28) = tp;\n  *(code **)(puVar29 + -0x88) = pcVar39;\n  *(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar29 + -0x2c) = *puVar4;\n  pmVar31 = mp;\n  if (mp < (mp_srcptr)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar36 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }\n    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;\n    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);\n    uVar46 = uVar47;\n    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }\n    uVar46 = uVar18 << 0x10 | uVar46;\n    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);\n    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n    uVar18 = uVar46;\n    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }\n    *(uint *)(puVar29 + -0x44) = uVar18;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);\n    pEVar32 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar18 = *(int *)(puVar29 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar29 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    pmVar33 = *(mp_ptr *)(puVar29 + -100);\n    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;\n    pEVar20 = pEVar34;\n    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    pcVar39 = *(code **)(puVar29 + -0x88);\n    pEVar32 = pEVar36;\n    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar29 + -100);\n    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar7 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);\n    iVar13 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }\nLAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n    piVar6 = *(int **)(puVar29 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }\n  if (*(int *)(puVar29 + -0x2c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6db00;\n  puVar41 = puVar3 + -0x38;\n  *(mp_srcptr *)(puVar3 + -0x10) = pmVar31;\n  piVar6 = *(int **)(pcVar39 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30;\n  *(mp_ptr *)(puVar3 + -0x18) = tp;\n  *(undefined4 *)(puVar3 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar46 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar46 = 1;\n    iVar13 = 0;\n    uVar18 = 0;\n    ptVar35 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);\n    if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar38 + -0x7b70);\n  pcVar43 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar38 = *(code **)(pcVar39 + 0x659a8);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar6;\n  piVar6 = *(int **)(pcVar39 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar34 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar43;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar6;\n  iVar13 = (*pcVar38)();\n  ptVar37 = ptVar35[1].next;\n  iVar15 = *(int *)(puVar41 + -0x90);\n  pEVar36 = (Elf32_Ehdr *)ptVar35->size;\n  ptVar16 = ptVar37->next;\n  if (iVar13 < 1) {\n    pEVar34 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;\n    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;\n  }\n  if ((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar34 = pEVar36;\n    if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }\n  }\nLAB_00031824:\n  iVar13 = *(int *)(puVar41 + -0x2c);\n  if (iVar13 == *piVar6) {\n    return;\n  }\nLAB_00031c58:\n  pcVar39 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar39)();\n  pcVar38 = pcVar39 + 0x6d3d0;\n  pcVar12 = *(char **)(pcVar39 + 0x65518);\n  *(int **)(puVar41 + -0xa8) = piVar6;\n  *(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36;\n  *(code **)(puVar41 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar41 + -0xa4) = uVar44;\n  if (*pcVar12 == '\0') {\n    pcVar38 = *(code **)(pcVar39 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);\n    *pcVar12 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb8);\n  }\n  pEVar36 = pEVar34;\n  if ((int)pEVar34 < 0) {\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5);\n  if ((int)pEVar34 < 0) {\n    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);\n  }\n  return;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar11 = *puVar14;\n  if (uVar11 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar18 % uVar11 == 0) {\n    pEVar34 = pEVar36;\n    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 == 0) goto LAB_00031824;\n    pEVar34 = (Elf32_Ehdr *)0x81;\n    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar42 = 1;\n  iVar15 = 0;\n  uVar18 = uVar47;\nLAB_00031b4c:\n  *(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;\nLAB_00031a4c:\n  uVar11 = uVar47 + 2;\n  iVar28 = (uint)(uVar11 < uVar47) + iVar28;\n  uVar47 = uVar11;\n  iVar15 = iVar42;\n  if (uVar46 <= uVar11) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Elf32_Ehdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "word *pwVar7;" type_identifier (pointer_declarator "*pwVar7" * identifier) ;) (declaration "word *pwVar8;" type_identifier (pointer_declarator "*pwVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "tmp_reentrant_t *ptVar16;" type_identifier (pointer_declarator "*ptVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar19;" type_identifier (pointer_declarator "*pmVar19" * identifier) ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "mp_srcptr pmVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "mp_limb_t mVar26;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined1 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "mp_srcptr pmVar31;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "mp_ptr pmVar33;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "tmp_reentrant_t *ptVar35;" type_identifier (pointer_declarator "*ptVar35" * identifier) ;) (declaration "Elf32_Ehdr *pEVar36;" type_identifier (pointer_declarator "*pEVar36" * identifier) ;) (declaration "tmp_reentrant_t *ptVar37;" type_identifier (pointer_declarator "*ptVar37" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "undefined1 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "undefined1 *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "code *pcVar43;" type_identifier (pointer_declarator "*pcVar43" * identifier) ;) (declaration "undefined4 uVar44;" type_identifier identifier ;) (declaration "uint uVar45;" type_identifier identifier ;) (declaration "uint uVar46;" type_identifier identifier ;) (declaration "uint uVar47;" type_identifier identifier ;) (declaration "undefined8 uVar48;" type_identifier identifier ;) (declaration "undefined1 auStack_58 [24];" type_identifier (array_declarator "auStack_58 [24]" identifier [ number_literal ]) ;) (declaration "gmp_pi1_t local_40;" type_identifier identifier ;) (declaration "mp_srcptr local_34;" type_identifier identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar29 = auStack_58;" (assignment_expression "puVar29 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar36 = (Elf32_Ehdr *)(an * 4);" (assignment_expression "pEVar36 = (Elf32_Ehdr *)(an * 4)" identifier = (cast_expression "(Elf32_Ehdr *)(an * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an * 4)" ( (binary_expression "an * 4" identifier * number_literal) )))) ;) (expression_statement "pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9);" (assignment_expression "pEVar34 = *(Elf32_Ehdr **)(&LAB_00066e78 + in_t9)" identifier = (pointer_expression "*(Elf32_Ehdr **)(&LAB_00066e78 + in_t9)" * (cast_expression "(Elf32_Ehdr **)(&LAB_00066e78 + in_t9)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00066e78 + in_t9)" ( (binary_expression "&LAB_00066e78 + in_t9" (pointer_expression "&LAB_00066e78" & identifier) + identifier) ))))) ;) (expression_statement "local_40.inv32 = in_t9 + 0x6e978;" (assignment_expression "local_40.inv32 = in_t9 + 0x6e978" (field_expression "local_40.inv32" identifier . field_identifier) = (binary_expression "in_t9 + 0x6e978" identifier + number_literal)) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "local_2c._0_1_ = pEVar34->e_ident_magic_num" (field_expression "local_2c._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "local_2c._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "local_2c._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "local_2c._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "local_2c._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "local_2c._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "local_2c._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "local_2c._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "local_2c._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "local_2c._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pEVar36 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);\n    puVar29 = auStack_58 + iVar13;\n    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);\n  }\n  else {\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }" if (parenthesized_expression "(pEVar36 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar36 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);\n    puVar29 = auStack_58 + iVar13;\n    pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);\n  }" { (expression_statement "iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar13 = -((uint)&pEVar36->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar36->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar36->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar36->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar36->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar36->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar29 = auStack_58 + iVar13;" (assignment_expression "puVar29 = auStack_58 + iVar13" identifier = (binary_expression "auStack_58 + iVar13" identifier + identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)&local_40 + iVar13)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&local_40 + iVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40 + iVar13)" ( (binary_expression "(int)&local_40 + iVar13" (cast_expression "(int)&local_40" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40" & identifier)) + identifier) )))) ;) }) (else_clause "else {\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }" else (compound_statement "{\n    local_34 = mp;\n    pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);\n    mp = local_34;\n  }" { (expression_statement "local_34 = mp;" (assignment_expression "local_34 = mp" identifier = identifier) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x66c28))(&__tmp_marker,pEVar36)" (parenthesized_expression "(**(code **)(in_t9 + 0x66c28))" ( (pointer_expression "**(code **)(in_t9 + 0x66c28)" * (pointer_expression "*(code **)(in_t9 + 0x66c28)" * (cast_expression "(code **)(in_t9 + 0x66c28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x66c28)" ( (binary_expression "in_t9 + 0x66c28" identifier + number_literal) ))))) )) (argument_list "(&__tmp_marker,pEVar36)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "mp = local_34;" (assignment_expression "mp = local_34" identifier = identifier) ;) }))) (expression_statement "uVar18 = ((an - mn) + 1) * 4;" (assignment_expression "uVar18 = ((an - mn) + 1) * 4" identifier = (binary_expression "((an - mn) + 1) * 4" (parenthesized_expression "((an - mn) + 1)" ( (binary_expression "(an - mn) + 1" (parenthesized_expression "(an - mn)" ( (binary_expression "an - mn" identifier - identifier) )) + number_literal) )) * number_literal)) ;) (if_statement "if (uVar18 < 0x7f01) {\n    iVar13 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar29 + iVar13 + 0x18;\n    puVar29 = puVar29 + iVar13;\n  }\n  else {\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar13 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar29 + iVar13 + 0x18;\n    puVar29 = puVar29 + iVar13;\n  }" { (expression_statement "iVar13 = -(uVar18 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar18 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar18 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar18 + 7 & 0xfffffff8)" ( (binary_expression "uVar18 + 7 & 0xfffffff8" (binary_expression "uVar18 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar29 + iVar13 + 0x18;" (assignment_expression "puVar3 = puVar29 + iVar13 + 0x18" identifier = (binary_expression "puVar29 + iVar13 + 0x18" (binary_expression "puVar29 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar29 = puVar29 + iVar13;" (assignment_expression "puVar29 = puVar29 + iVar13" identifier = (binary_expression "puVar29 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }" else (compound_statement "{\n    local_34 = mp;\n    puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);\n    mp = local_34;\n  }" { (expression_statement "local_34 = mp;" (assignment_expression "local_34 = mp" identifier = identifier) ;) (expression_statement "puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker);" (assignment_expression "puVar3 = (undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker)" identifier = (cast_expression "(undefined1 *)(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_40.inv32 - 0x7d50))(&__tmp_marker)" (parenthesized_expression "(**(code **)(local_40.inv32 - 0x7d50))" ( (pointer_expression "**(code **)(local_40.inv32 - 0x7d50)" * (pointer_expression "*(code **)(local_40.inv32 - 0x7d50)" * (cast_expression "(code **)(local_40.inv32 - 0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_40.inv32 - 0x7d50)" ( (binary_expression "local_40.inv32 - 0x7d50" (field_expression "local_40.inv32" identifier . field_identifier) - number_literal) ))))) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) (expression_statement "mp = local_34;" (assignment_expression "mp = local_34" identifier = identifier) ;) }))) (if_statement "if (an != 0) {\n    iVar13 = an + -1;\n    mVar26 = *ap;\n    if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }" if (parenthesized_expression "(an != 0)" ( (binary_expression "an != 0" identifier != number_literal) )) (compound_statement "{\n    iVar13 = an + -1;\n    mVar26 = *ap;\n    if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }" { (expression_statement "iVar13 = an + -1;" (assignment_expression "iVar13 = an + -1" identifier = (binary_expression "an + -1" identifier + number_literal)) ;) (expression_statement "mVar26 = *ap;" (assignment_expression "mVar26 = *ap" identifier = (pointer_expression "*ap" * identifier)) ;) (if_statement "if (iVar13 == 0) {\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }\n    else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar30->e_ident_magic_str[2] = (char)mVar26;\n      pEVar36 = pEVar30;\n    }" { (expression_statement "pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18);" (assignment_expression "pEVar30->e_ident_magic_num = (char)(mVar26 >> 0x18)" (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)(mVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x18)" ( (binary_expression "mVar26 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);" (assignment_expression "pEVar30->e_ident_magic_str[0] = (char)(mVar26 >> 0x10)" (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x10)" ( (binary_expression "mVar26 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8);" (assignment_expression "pEVar30->e_ident_magic_str[1] = (char)(mVar26 >> 8)" (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 8)" ( (binary_expression "mVar26 >> 8" identifier >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[2] = (char)mVar26;" (assignment_expression "pEVar30->e_ident_magic_str[2] = (char)mVar26" (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)mVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar36 = pEVar30;" (assignment_expression "pEVar36 = pEVar30" identifier = identifier) ;) }) (else_clause "else {\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }" else (compound_statement "{\n      pEVar32 = pEVar30;\n      pmVar19 = ap + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);\n      pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);\n      pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar36->e_ident_magic_str[2] = (char)mVar26;\n    }" { (expression_statement "pEVar32 = pEVar30;" (assignment_expression "pEVar32 = pEVar30" identifier = identifier) ;) (expression_statement "pmVar19 = ap + 1;" (assignment_expression "pmVar19 = ap + 1" identifier = (binary_expression "ap + 1" identifier + number_literal)) ;) (do_statement "do {\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar13 != 0);" do (compound_statement "{\n        pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)mVar26;\n        iVar13 = iVar13 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      }" { (expression_statement "pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)(mVar26 >> 0x18)" (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)(mVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x18)" ( (binary_expression "mVar26 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)(mVar26 >> 0x10)" (subscript_expression "pEVar32->e_ident_magic_str[0]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x10)" ( (binary_expression "mVar26 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)(mVar26 >> 8)" (subscript_expression "pEVar32->e_ident_magic_str[1]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 8)" ( (binary_expression "mVar26 >> 8" identifier >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[2] = (char)mVar26;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)mVar26" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)mVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "mVar26 = *pmVar19;" (assignment_expression "mVar26 = *pmVar19" identifier = (pointer_expression "*pmVar19" * identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar32->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar32->e_ident_class" & (field_expression "pEVar32->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pmVar19 = pmVar19 + 1;" (assignment_expression "pmVar19 = pmVar19 + 1" identifier = (binary_expression "pmVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30);" (assignment_expression "pEVar36 = (Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar36[-1].e_shnum + (int)pEVar30)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar36[-1].e_shnum + (int)pEVar30)" ( (binary_expression "(int)&pEVar36[-1].e_shnum + (int)pEVar30" (cast_expression "(int)&pEVar36[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar36[-1].e_shnum" & (field_expression "pEVar36[-1].e_shnum" (subscript_expression "pEVar36[-1]" identifier [ number_literal ]) . field_identifier))) + (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18);" (assignment_expression "pEVar36->e_ident_magic_num = (char)(mVar26 >> 0x18)" (field_expression "pEVar36->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)(mVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x18)" ( (binary_expression "mVar26 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);" (assignment_expression "pEVar36->e_ident_magic_str[0] = (char)(mVar26 >> 0x10)" (subscript_expression "pEVar36->e_ident_magic_str[0]" (field_expression "pEVar36->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 0x10)" ( (binary_expression "mVar26 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8);" (assignment_expression "pEVar36->e_ident_magic_str[1] = (char)(mVar26 >> 8)" (subscript_expression "pEVar36->e_ident_magic_str[1]" (field_expression "pEVar36->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(mVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(mVar26 >> 8)" ( (binary_expression "mVar26 >> 8" identifier >> number_literal) )))) ;) (expression_statement "pEVar36->e_ident_magic_str[2] = (char)mVar26;" (assignment_expression "pEVar36->e_ident_magic_str[2] = (char)mVar26" (subscript_expression "pEVar36->e_ident_magic_str[2]" (field_expression "pEVar36->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)mVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar29 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar29 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar29 + 0x14)" * (cast_expression "(undefined1 **)(puVar29 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x14)" ( (binary_expression "puVar29 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(gmp_pi1_t **)(puVar29 + 0x10) = dinv;" (assignment_expression "*(gmp_pi1_t **)(puVar29 + 0x10) = dinv" (pointer_expression "*(gmp_pi1_t **)(puVar29 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar29 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x10)" ( (binary_expression "puVar29 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)an;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)an" identifier = (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)mn;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)mn" identifier = (cast_expression "(Elf32_Ehdr *)mn" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14));" (call_expression "mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14))" identifier (argument_list "((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar29 + 0x10),*(mp_ptr *)(puVar29 + 0x14))" ( (cast_expression "(mp_ptr)pEVar30" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , identifier , identifier , identifier , (pointer_expression "*(gmp_pi1_t **)(puVar29 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar29 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x10)" ( (binary_expression "puVar29 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar29 + 0x14)" * (cast_expression "(mp_ptr *)(puVar29 + 0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 0x14)" ( (binary_expression "puVar29 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)mn;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)mn" identifier = (cast_expression "(Elf32_Ehdr *)mn" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (mn != 0) {\n    iVar13 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar33 = tp;\n    pEVar5 = pEVar30;\n    if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }\n    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;\n  }" if (parenthesized_expression "(mn != 0)" ( (binary_expression "mn != 0" identifier != number_literal) )) (compound_statement "{\n    iVar13 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar33 = tp;\n    pEVar5 = pEVar30;\n    if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }\n    *(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;\n  }" { (expression_statement "iVar13 = mn + -1;" (assignment_expression "iVar13 = mn + -1" identifier = (binary_expression "mn + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar30->e_ident_magic_num" & (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pmVar33 = tp;" (assignment_expression "pmVar33 = tp" identifier = identifier) ;) (expression_statement "pEVar5 = pEVar30;" (assignment_expression "pEVar5 = pEVar30" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }" { (do_statement "do {\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (iVar13 != 0);" do (compound_statement "{\n        *pmVar33 = (mp_limb_t)pEVar20;\n        iVar13 = iVar13 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pmVar33 = pmVar33 + 1;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      }" { (expression_statement "*pmVar33 = (mp_limb_t)pEVar20;" (assignment_expression "*pmVar33 = (mp_limb_t)pEVar20" (pointer_expression "*pmVar33" * identifier) = (cast_expression "(mp_limb_t)pEVar20" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar5->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pmVar33 = pmVar33 + 1;" (assignment_expression "pmVar33 = pmVar33 + 1" identifier = (binary_expression "pmVar33 + 1" identifier + number_literal)) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;" (assignment_expression "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)(mn * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mn * 4 + -4)" ( (binary_expression "mn * 4 + -4" (binary_expression "mn * 4" identifier * number_literal) + number_literal) )))) ;) (expression_statement "tp = tp + mn + -1;" (assignment_expression "tp = tp + mn + -1" identifier = (binary_expression "tp + mn + -1" (binary_expression "tp + mn" identifier + identifier) + number_literal)) ;) })) (expression_statement "*(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&((Elf32_Ehdr *)tp)->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) = identifier) ;) })) (expression_statement "ptVar16 = __tmp_marker;" (assignment_expression "ptVar16 = __tmp_marker" identifier = identifier) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (**(code **)(local_40.inv32 - 0x7a2c))();\n  }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(local_40.inv32 - 0x7a2c))();\n  }" { (expression_statement "(**(code **)(local_40.inv32 - 0x7a2c))();" (call_expression "(**(code **)(local_40.inv32 - 0x7a2c))()" (parenthesized_expression "(**(code **)(local_40.inv32 - 0x7a2c))" ( (pointer_expression "**(code **)(local_40.inv32 - 0x7a2c)" * (pointer_expression "*(code **)(local_40.inv32 - 0x7a2c)" * (cast_expression "(code **)(local_40.inv32 - 0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_40.inv32 - 0x7a2c)" ( (binary_expression "local_40.inv32 - 0x7a2c" (field_expression "local_40.inv32" identifier . field_identifier) - number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar13._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar34->e_ident_magic_num" (field_expression "iVar13._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar13._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (local_2c == iVar13) {\n    return;\n  }" if (parenthesized_expression "(local_2c == iVar13)" ( (binary_expression "local_2c == iVar13" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar38 = *(code **)(local_40.inv32 - 0x7b70);" (assignment_expression "pcVar38 = *(code **)(local_40.inv32 - 0x7b70)" identifier = (pointer_expression "*(code **)(local_40.inv32 - 0x7b70)" * (cast_expression "(code **)(local_40.inv32 - 0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_40.inv32 - 0x7b70)" ( (binary_expression "local_40.inv32 - 0x7b70" (field_expression "local_40.inv32" identifier . field_identifier) - number_literal) ))))) ;) (expression_statement "pcVar43 = __gmpz_powm_ui;" (assignment_expression "pcVar43 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar39 = pcVar38 + 0x6e770;" (assignment_expression "pcVar39 = pcVar38 + 0x6e770" identifier = (binary_expression "pcVar38 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(pcVar38 + 0x66c70);" (assignment_expression "puVar4 = *(undefined4 **)(pcVar38 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(pcVar38 + 0x66c70)" * (cast_expression "(undefined4 **)(pcVar38 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x66c70)" ( (binary_expression "pcVar38 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar41 = puVar29 + -0xa0;" (assignment_expression "puVar41 = puVar29 + -0xa0" identifier = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar29 + -0xa0;" (assignment_expression "puVar3 = puVar29 + -0xa0" identifier = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar40 = puVar29 + -0xa0;" (assignment_expression "puVar40 = puVar29 + -0xa0" identifier = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar29 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar29 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar29 + -8)" * (cast_expression "(undefined1 **)(puVar29 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -8)" ( (binary_expression "puVar29 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar29 + -0x20) = ap;" (assignment_expression "*(mp_srcptr *)(puVar29 + -0x20) = ap" (pointer_expression "*(mp_srcptr *)(puVar29 + -0x20)" * (cast_expression "(mp_srcptr *)(puVar29 + -0x20)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x20)" ( (binary_expression "puVar29 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar29 + -4) = pcVar43;" (assignment_expression "*(code **)(puVar29 + -4) = pcVar43" (pointer_expression "*(code **)(puVar29 + -4)" * (cast_expression "(code **)(puVar29 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -4)" ( (binary_expression "puVar29 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar29 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar29 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar29 + -0x58)" * (cast_expression "(undefined4 **)(puVar29 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x58)" ( (binary_expression "puVar29 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(gmp_pi1_t **)(puVar29 + -0xc) = dinv;" (assignment_expression "*(gmp_pi1_t **)(puVar29 + -0xc) = dinv" (pointer_expression "*(gmp_pi1_t **)(puVar29 + -0xc)" * (cast_expression "(gmp_pi1_t **)(puVar29 + -0xc)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0xc)" ( (binary_expression "puVar29 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x10) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x10)" ( (binary_expression "puVar29 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_size_t *)(puVar29 + -0x14) = an;" (assignment_expression "*(mp_size_t *)(puVar29 + -0x14) = an" (pointer_expression "*(mp_size_t *)(puVar29 + -0x14)" * (cast_expression "(mp_size_t *)(puVar29 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x14)" ( (binary_expression "puVar29 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x18) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x18)" ( (binary_expression "puVar29 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x1c)" ( (binary_expression "puVar29 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x24) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x24)" ( (binary_expression "puVar29 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar29 + -0x28) = tp;" (assignment_expression "*(mp_ptr *)(puVar29 + -0x28) = tp" (pointer_expression "*(mp_ptr *)(puVar29 + -0x28)" * (cast_expression "(mp_ptr *)(puVar29 + -0x28)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x28)" ( (binary_expression "puVar29 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar29 + -0x88) = pcVar39;" (assignment_expression "*(code **)(puVar29 + -0x88) = pcVar39" (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16;" (assignment_expression "*(tmp_reentrant_t **)(puVar29 + -0x54) = ptVar16" (pointer_expression "*(tmp_reentrant_t **)(puVar29 + -0x54)" * (cast_expression "(tmp_reentrant_t **)(puVar29 + -0x54)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x5c) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x5c)" ( (binary_expression "puVar29 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x68) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x68)" ( (binary_expression "puVar29 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar29 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar29 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar29 + -0x2c)" * (cast_expression "(undefined4 *)(puVar29 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x2c)" ( (binary_expression "puVar29 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pmVar31 = mp;" (assignment_expression "pmVar31 = mp" identifier = identifier) ;) (if_statement "if (mp < (mp_srcptr)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar36 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }\n    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;\n    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);\n    uVar46 = uVar47;\n    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }\n    uVar46 = uVar18 << 0x10 | uVar46;\n    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);\n    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n    uVar18 = uVar46;\n    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }\n    *(uint *)(puVar29 + -0x44) = uVar18;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);\n    pEVar32 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar18 = *(int *)(puVar29 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar29 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    pmVar33 = *(mp_ptr *)(puVar29 + -100);\n    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;\n    pEVar20 = pEVar34;\n    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    pcVar39 = *(code **)(puVar29 + -0x88);\n    pEVar32 = pEVar36;\n    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar29 + -100);\n    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar7 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);\n    iVar13 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }\nLAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n    piVar6 = *(int **)(puVar29 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }" if (parenthesized_expression "(mp < (mp_srcptr)0x14)" ( (binary_expression "mp < (mp_srcptr)0x14" identifier < (cast_expression "(mp_srcptr)0x14" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar36 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }\n    uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;\n    pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);\n    uVar46 = uVar47;\n    if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }\n    uVar46 = uVar18 << 0x10 | uVar46;\n    pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);\n    lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n    uVar18 = uVar46;\n    if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }\n    *(uint *)(puVar29 + -0x44) = uVar18;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);\n    pEVar32 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar18 = *(int *)(puVar29 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar29 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    pmVar33 = *(mp_ptr *)(puVar29 + -100);\n    pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;\n    pEVar20 = pEVar34;\n    reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    pcVar39 = *(code **)(puVar29 + -0x88);\n    pEVar32 = pEVar36;\n    if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar29 + -100);\n    pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar7 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n    tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);\n    iVar13 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }\nLAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n    piVar6 = *(int **)(puVar29 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar29 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar29 + -0x4c)" * (cast_expression "(undefined4 *)(puVar29 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar27->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar27->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_abiversion" & (field_expression "pEVar27->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar36 = pEVar5;" (assignment_expression "pEVar36 = pEVar5" identifier = identifier) ;) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" if (parenthesized_expression "((int)pEVar5 < 0)" ( (binary_expression "(int)pEVar5 < 0" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" { (expression_statement "pEVar36 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar36 = (Elf32_Ehdr *)-(int)pEVar5" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar5" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar5" - (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x78) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar5 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar5 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pmVar22 = mp;\n      uVar48 = (**(code **)(pcVar38 + 0x66d0c))();\nLAB_00031228:\n      uVar18 = (uint)uVar48;\n      pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));\n      puVar3 = puVar41;\n    }" { (expression_statement "pmVar22 = mp;" (assignment_expression "pmVar22 = mp" identifier = identifier) ;) (expression_statement "uVar48 = (**(code **)(pcVar38 + 0x66d0c))();" (assignment_expression "uVar48 = (**(code **)(pcVar38 + 0x66d0c))()" identifier = (call_expression "(**(code **)(pcVar38 + 0x66d0c))()" (parenthesized_expression "(**(code **)(pcVar38 + 0x66d0c))" ( (pointer_expression "**(code **)(pcVar38 + 0x66d0c)" * (pointer_expression "*(code **)(pcVar38 + 0x66d0c)" * (cast_expression "(code **)(pcVar38 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x66d0c)" ( (binary_expression "pcVar38 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar18 = (uint)uVar48;" statement_identifier : (expression_statement "uVar18 = (uint)uVar48;" (assignment_expression "uVar18 = (uint)uVar48" identifier = (cast_expression "(uint)uVar48" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20));" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20))" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20))" ( (binary_expression "&pEVar20->e_ident_magic_num + (int)((ulonglong)uVar48 >> 0x20)" (pointer_expression "&pEVar20->e_ident_magic_num" & (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)((ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar48 >> 0x20" (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )))) ;) (expression_statement "puVar3 = puVar41;" (assignment_expression "puVar3 = puVar41" identifier = identifier) ;) }) (else_clause "else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);\n      if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar29 + -0x40) = 0;\n      *(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(pcVar38 + 0x668bc);\n      iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];\n      *(int *)(puVar29 + -0x6c) = iVar13;\n      puVar41 = puVar29 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);\n      pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);\n      if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }\n      uVar46 = ~(uint)pEVar20 / (uint)pmVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);\n      pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);\n      uVar18 = uVar46;\n      in_t1 = pEVar27;\n      puVar3 = puVar41;\n      if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)pEVar36 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar36 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar36 * 4)" ( (binary_expression "(int)pEVar36 * 4" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (mp == (mp_srcptr)0x0) {\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }" if (parenthesized_expression "(mp == (mp_srcptr)0x0)" ( (binary_expression "mp == (mp_srcptr)0x0" identifier == (cast_expression "(mp_srcptr)0x0" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n        uVar18 = 1;\n        if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);\n        ptVar35 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar35->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar29 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar36 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar36 == (Elf32_Ehdr *)&DAT_00000001" identifier == (cast_expression "(Elf32_Ehdr *)&DAT_00000001" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n          uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);\n        }" { (expression_statement "uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1);" (assignment_expression "uVar18 = (uint)(**(int **)(puVar29 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar29 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar29 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar29 + -0x4c) != 1" (pointer_expression "**(int **)(puVar29 + -0x4c)" * (pointer_expression "*(int **)(puVar29 + -0x4c)" * (cast_expression "(int **)(puVar29 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x54)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar29 + -0x54)" * (cast_expression "(tmp_reentrant_t **)(puVar29 + -0x54)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "ptVar35 = ptVar16[1].next;" (assignment_expression "ptVar35 = ptVar16[1].next" identifier = (field_expression "ptVar16[1].next" (subscript_expression "ptVar16[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ptVar16->size = uVar18;" (assignment_expression "ptVar16->size = uVar18" (field_expression "ptVar16->size" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar35->next = (tmp_reentrant_t *)0x1;" (assignment_expression "ptVar35->next = (tmp_reentrant_t *)0x1" (field_expression "ptVar35->next" identifier -> field_identifier) = (cast_expression "(tmp_reentrant_t *)0x1" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = puVar29 + -0xa0;" (assignment_expression "puVar3 = puVar29 + -0xa0" identifier = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar29 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar29 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar29 + -0x40)" * (cast_expression "(undefined4 *)(puVar29 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum;" (assignment_expression "*(word **)(puVar29 + -0x50) = &pEVar30[-1].e_shnum" (pointer_expression "*(word **)(puVar29 + -0x50)" * (cast_expression "(word **)(puVar29 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar30[-1].e_shnum" & (field_expression "pEVar30[-1].e_shnum" (subscript_expression "pEVar30[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c));" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c))" identifier = (pointer_expression "*(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c))" * (cast_expression "(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c))" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c))" ( (binary_expression "(int)&pEVar30[-1].e_shnum + *(int *)(puVar29 + -0x4c)" (cast_expression "(int)&pEVar30[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar30[-1].e_shnum" & (field_expression "pEVar30[-1].e_shnum" (subscript_expression "pEVar30[-1]" identifier [ number_literal ]) . field_identifier))) + (pointer_expression "*(int *)(puVar29 + -0x4c)" * (cast_expression "(int *)(puVar29 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) ))))) ;) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar20 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar20 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }" { (expression_statement "iVar13 = 0x20;" (assignment_expression "iVar13 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 0x18;\n        }" { (expression_statement "iVar13 = 0x18;" (assignment_expression "iVar13 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 1;\n        }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" { (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 8;\n        }" { (expression_statement "iVar13 = 8;" (assignment_expression "iVar13 = 8" identifier = number_literal) ;) })) (expression_statement "iVar15 = 0x19;" (assignment_expression "iVar15 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 0x11;\n        }" { (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "tp = *(mp_ptr *)(pcVar38 + 0x668bc);" (assignment_expression "tp = *(mp_ptr *)(pcVar38 + 0x668bc)" identifier = (pointer_expression "*(mp_ptr *)(pcVar38 + 0x668bc)" * (cast_expression "(mp_ptr *)(pcVar38 + 0x668bc)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + 0x668bc)" ( (binary_expression "pcVar38 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15];" (assignment_expression "iVar13 = iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15]" identifier = (binary_expression "iVar13 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15]" identifier - (subscript_expression "(uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar20 >> iVar15]" (call_expression "(uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&((Elf32_Ehdr *)tp)->e_ident_magic_num)" ( (pointer_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ))) [ (binary_expression "(uint)pEVar20 >> iVar15" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) ;) (expression_statement "*(int *)(puVar29 + -0x6c) = iVar13;" (assignment_expression "*(int *)(puVar29 + -0x6c) = iVar13" (pointer_expression "*(int *)(puVar29 + -0x6c)" * (cast_expression "(int *)(puVar29 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x6c)" ( (binary_expression "puVar29 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar41 = puVar29 + -0xa0;" (assignment_expression "puVar41 = puVar29 + -0xa0" identifier = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar13 != 0) {\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }\n        (**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        *(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;\n        pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));\n        puVar41 = puVar40;\n      }" { (if_statement "if (*(int *)(puVar29 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar29 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar29 + -0x50) + 4U" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar29 + iVar13 + -0xa0;\n          pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);\n        }" { (expression_statement "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar29 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar40 = puVar29 + iVar13 + -0xa0;" (assignment_expression "puVar40 = puVar29 + iVar13 + -0xa0" identifier = (binary_expression "puVar29 + iVar13 + -0xa0" (binary_expression "puVar29 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(puVar29 + iVar13 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar29 + iVar13 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + iVar13 + -0x88)" ( (binary_expression "puVar29 + iVar13 + -0x88" (binary_expression "puVar29 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }" else (compound_statement "{\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n        }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar38 + 0x66a20))(puVar29 + -0x40)" (parenthesized_expression "(**(code **)(pcVar38 + 0x66a20))" ( (pointer_expression "**(code **)(pcVar38 + 0x66a20)" * (pointer_expression "*(code **)(pcVar38 + 0x66a20)" * (cast_expression "(code **)(pcVar38 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x66a20)" ( (binary_expression "pcVar38 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  );" (call_expression "(**(code **)(pcVar39 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(pcVar39 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar39 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar39 + -0x7ad4)" * (cast_expression "(code **)(pcVar39 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7ad4)" ( (binary_expression "pcVar39 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar30,*(undefined4 *)(puVar29 + -0x4c),pEVar36,*(undefined4 *)(puVar29 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar29 + -0x4c)" * (cast_expression "(undefined4 *)(puVar29 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar29 + -0x6c)" * (cast_expression "(undefined4 *)(puVar29 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x6c)" ( (binary_expression "puVar29 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x4c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50));" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50))" identifier = (pointer_expression "*(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50))" * (cast_expression "(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50))" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50))" ( (binary_expression "&pEVar30->e_ident_magic_num + *(int *)(puVar29 + -0x50)" (pointer_expression "&pEVar30->e_ident_magic_num" & (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar41 = puVar40;" (assignment_expression "puVar41 = puVar40" identifier = identifier) ;) })) (if_statement "if (pEVar36 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }" if (parenthesized_expression "(pEVar36 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar36 == (Elf32_Ehdr *)&DAT_00000001" identifier == (cast_expression "(Elf32_Ehdr *)&DAT_00000001" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n        FUN_00030a38();\n        return;\n      }" { (expression_statement "FUN_00030a38();" (call_expression "FUN_00030a38()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50) + -4" (binary_expression "*(int *)(puVar29 + -0x4c) + *(int *)(puVar29 + -0x50)" (pointer_expression "*(int *)(puVar29 + -0x4c)" * (cast_expression "(int *)(puVar29 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10);" (assignment_expression "pmVar22 = (mp_srcptr)((uint)pEVar20 >> 0x10)" identifier = (call_expression "(mp_srcptr)((uint)pEVar20 >> 0x10)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)pEVar20 >> 0x10)" ( (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pmVar22 == (mp_srcptr)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pmVar22 == (mp_srcptr)0x0)" ( (binary_expression "pmVar22 == (mp_srcptr)0x0" identifier == (cast_expression "(mp_srcptr)0x0" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar46 = ~(uint)pEVar20 / (uint)pmVar22;" (assignment_expression "uVar46 = ~(uint)pEVar20 / (uint)pmVar22" identifier = (binary_expression "~(uint)pEVar20 / (uint)pmVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pmVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "in_t2 = (uint)pEVar20 & 0xffff;" (assignment_expression "in_t2 = (uint)pEVar20 & 0xffff" identifier = (binary_expression "(uint)pEVar20 & 0xffff" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar46)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar46)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar46)" ( (binary_expression "in_t2 * uVar46" identifier * identifier) )))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar20 % (uint)pmVar22 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % (uint)pmVar22 << 0x10" (binary_expression "~(uint)pEVar20 % (uint)pmVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pmVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar18 = uVar46;" (assignment_expression "uVar18 = uVar46" identifier = identifier) ;) (expression_statement "in_t1 = pEVar27;" (assignment_expression "in_t1 = pEVar27" identifier = identifier) ;) (expression_statement "puVar3 = puVar41;" (assignment_expression "puVar3 = puVar41" identifier = identifier) ;) (if_statement "if (pEVar34 < in_t3) {\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar34 < in_t3)" ( (binary_expression "pEVar34 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);\n        uVar18 = uVar46 - 1;\n        if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" ( (binary_expression "&pEVar20->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num" (pointer_expression "&pEVar20->e_ident_magic_num" & (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar34->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34->e_ident_magic_num" & (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar18 = uVar46 - 1;" (assignment_expression "uVar18 = uVar46 - 1" identifier = (binary_expression "uVar46 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3))" ( (binary_expression "(pEVar20 <= pEVar34) && (uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar34)" ( (binary_expression "pEVar20 <= pEVar34" identifier <= identifier) )) && (parenthesized_expression "(uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3)" ( (comma_expression "uVar48 = CONCAT44(pEVar34,uVar46 - 2), pEVar34 < in_t3" (assignment_expression "uVar48 = CONCAT44(pEVar34,uVar46 - 2)" identifier = (call_expression "CONCAT44(pEVar34,uVar46 - 2)" identifier (argument_list "(pEVar34,uVar46 - 2)" ( identifier , (binary_expression "uVar46 - 2" identifier - number_literal) )))) , (binary_expression "pEVar34 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (pmVar22 == (mp_srcptr)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pmVar22 == (mp_srcptr)0x0)" ( (binary_expression "pmVar22 == (mp_srcptr)0x0" identifier == (cast_expression "(mp_srcptr)0x0" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22;" (assignment_expression "uVar47 = (uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22" identifier = (binary_expression "(uint)((int)pEVar34 - (int)in_t3) / (uint)pmVar22" (call_expression "(uint)((int)pEVar34 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar34 - (int)in_t3)" ( (binary_expression "(int)pEVar34 - (int)in_t3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pmVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22 << 0x10" (binary_expression "(uint)((int)pEVar34 - (int)in_t3) % (uint)pmVar22" (call_expression "(uint)((int)pEVar34 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar34 - (int)in_t3)" ( (binary_expression "(int)pEVar34 - (int)in_t3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pmVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num)" ( (binary_expression "&pEVar34->e_ident_magic_num + (int)&pEVar20->e_ident_magic_num" (pointer_expression "&pEVar34->e_ident_magic_num" & (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar20->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20->e_ident_magic_num" & (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar46 = uVar47;" (assignment_expression "uVar46 = uVar47" identifier = identifier) ;) (if_statement "if ((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))) {\n      uVar46 = uVar47 - 1;\n    }" if (parenthesized_expression "((pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32))))" ( (binary_expression "(pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)) &&\n       ((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))" (parenthesized_expression "(pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47))" ( (binary_expression "pEVar34 < (Elf32_Ehdr *)(in_t2 * uVar47)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar47)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar47)" ( (binary_expression "in_t2 * uVar47" identifier * identifier) )))) )) && (parenthesized_expression "((pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)))" ( (parenthesized_expression "(pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32))" ( (binary_expression "pEVar32 < pEVar20 || (uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)" (binary_expression "pEVar32 < pEVar20" identifier < identifier) || (parenthesized_expression "(uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32)" ( (comma_expression "uVar46 = uVar47 - 2, (Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32" (assignment_expression "uVar46 = uVar47 - 2" identifier = (binary_expression "uVar47 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar47) <= pEVar32" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar47)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar47)" ( (binary_expression "in_t2 * uVar47" identifier * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar46 = uVar47 - 1;\n    }" { (expression_statement "uVar46 = uVar47 - 1;" (assignment_expression "uVar46 = uVar47 - 1" identifier = (binary_expression "uVar47 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar46 = uVar18 << 0x10 | uVar46;" (assignment_expression "uVar46 = uVar18 << 0x10 | uVar46" identifier = (binary_expression "uVar18 << 0x10 | uVar46" (binary_expression "uVar18 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46)" ( (binary_expression "&pEVar27->e_ident_magic_num + (int)pEVar20 * uVar46" (pointer_expression "&pEVar27->e_ident_magic_num" & (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar20 * uVar46" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar46 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar46" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar34 < pEVar27) {\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar34 < pEVar27)" ( (binary_expression "pEVar34 < pEVar27" identifier < identifier) )) (compound_statement "{\n      uVar18 = pEVar34 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar46 = (uVar46 - 1) - uVar18;\n      pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar18 = pEVar34 < pEVar20 ^ 1;" (assignment_expression "uVar18 = pEVar34 < pEVar20 ^ 1" identifier = (binary_expression "pEVar34 < pEVar20 ^ 1" (binary_expression "pEVar34 < pEVar20" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" identifier = identifier) ;) (if_statement "if (uVar18 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar46 = (uVar46 - 1) - uVar18;" (assignment_expression "uVar46 = (uVar46 - 1) - uVar18" identifier = (binary_expression "(uVar46 - 1) - uVar18" (parenthesized_expression "(uVar46 - 1)" ( (binary_expression "uVar46 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20));" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar34 + (-(int)pEVar32 - (int)pEVar20))" ( (binary_expression "(int)pEVar34 + (-(int)pEVar32 - (int)pEVar20)" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar32 - (int)pEVar20)" ( (binary_expression "-(int)pEVar32 - (int)pEVar20" (unary_expression "-(int)pEVar32" - (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar46 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar46 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar46" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" identifier = (cast_expression "(Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num)" ( (binary_expression "&pEVar32->e_ident_magic_num + (int)&pEVar34->e_ident_magic_num" (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar34->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34->e_ident_magic_num" & (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar18 = uVar46;" (assignment_expression "uVar18 = uVar46" identifier = identifier) ;) (if_statement "if (((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar18 = uVar46 - 2;\n    }" if (parenthesized_expression "(((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34))" ( (binary_expression "(pEVar34 < pEVar32) && (uVar18 = uVar46 - 1, pEVar20 <= pEVar34)" (parenthesized_expression "(pEVar34 < pEVar32)" ( (binary_expression "pEVar34 < pEVar32" identifier < identifier) )) && (parenthesized_expression "(uVar18 = uVar46 - 1, pEVar20 <= pEVar34)" ( (comma_expression "uVar18 = uVar46 - 1, pEVar20 <= pEVar34" (assignment_expression "uVar18 = uVar46 - 1" identifier = (binary_expression "uVar46 - 1" identifier - number_literal)) , (binary_expression "pEVar20 <= pEVar34" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar34)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar20 < pEVar34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar20 < pEVar34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar20 < pEVar34)" ( (binary_expression "pEVar20 < pEVar34" identifier < identifier) ))))) , (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar27 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar27 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar27 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar18 = uVar46 - 2;\n    }" { (expression_statement "uVar18 = uVar46 - 2;" (assignment_expression "uVar18 = uVar46 - 2" identifier = (binary_expression "uVar46 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar29 + -0x44) = uVar18;" (assignment_expression "*(uint *)(puVar29 + -0x44) = uVar18" (pointer_expression "*(uint *)(puVar29 + -0x44)" * (cast_expression "(uint *)(puVar29 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x44)" ( (binary_expression "puVar29 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar29 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x5c) + 4" (pointer_expression "*(int *)(puVar29 + -0x5c)" * (cast_expression "(int *)(puVar29 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x5c)" ( (binary_expression "puVar29 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar27;" (assignment_expression "pEVar32 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" if (parenthesized_expression "((int)pEVar27 < 0)" ( (binary_expression "(int)pEVar27 < 0" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar27" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar27" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar27" - (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8);" (assignment_expression "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar29 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar29 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar29 + -0x5c) + 8" (pointer_expression "*(int *)(puVar29 + -0x5c)" * (cast_expression "(int *)(puVar29 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x5c)" ( (binary_expression "puVar29 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar36) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar32 <= (int)pEVar36)" ( (binary_expression "(int)pEVar32 <= (int)pEVar36" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);\n      *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar39)();\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar27 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar27 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;\n        *(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar29 + -100) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -100) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar29 + -0x70) = *(int *)(puVar29 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar29 + -0x70)" * (cast_expression "(uint *)(puVar29 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar29 + -0x50) + 4U" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar29 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar29 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar29 + -0x50) + 4U" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);" statement_identifier : (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar29 + -0x40)" * (cast_expression "(tmp_reentrant_t **)(puVar29 + -0x40)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar29 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x54) + 4" (pointer_expression "*(int *)(puVar29 + -0x54)" * (cast_expression "(int *)(puVar29 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(ptVar16 == (tmp_reentrant_t *)0x0)" ( (binary_expression "ptVar16 == (tmp_reentrant_t *)0x0" identifier == (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7a2c);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7a2c)" * (cast_expression "(code **)(pcVar39 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7a2c)" ( (binary_expression "pcVar39 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar39)();" statement_identifier : (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar18 = *(int *)(puVar29 + -0x50) + 4;" (assignment_expression "uVar18 = *(int *)(puVar29 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar29 + -0x50) + 4" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar18 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar18 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar29 + -0x70) = uVar18;" (assignment_expression "*(uint *)(puVar29 + -0x70) = uVar18" (pointer_expression "*(uint *)(puVar29 + -0x70)" * (cast_expression "(uint *)(puVar29 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" if (parenthesized_expression "(pEVar30 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar30 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar39 = *(code **)(pcVar39 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;\n      uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);\n      *(undefined4 *)(puVar29 + -100) = uVar44;\n    }" { (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7d50);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7d50)" * (cast_expression "(code **)(pcVar39 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d50)" ( (binary_expression "pcVar39 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar29 + -0x60) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));" (assignment_expression "uVar44 = (*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" identifier = (call_expression "(*pcVar39)(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar29 + -0x70)" * (cast_expression "(undefined4 *)(puVar29 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60);" (assignment_expression "pEVar32 = *(Elf32_Ehdr **)(puVar29 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar29 + -100) = uVar44;" (assignment_expression "*(undefined4 *)(puVar29 + -100) = uVar44" (pointer_expression "*(undefined4 *)(puVar29 + -100)" * (cast_expression "(undefined4 *)(puVar29 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" else (compound_statement "{\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar29 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar29 + -100) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar29 + -100)" * (cast_expression "(undefined1 **)(puVar29 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }))) (expression_statement "pmVar33 = *(mp_ptr *)(puVar29 + -100);" (assignment_expression "pmVar33 = *(mp_ptr *)(puVar29 + -100)" identifier = (pointer_expression "*(mp_ptr *)(puVar29 + -100)" * (cast_expression "(mp_ptr *)(puVar29 + -100)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) ))))) ;) (expression_statement "pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c);" (assignment_expression "pmVar22 = *(mp_srcptr *)(puVar29 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar29 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar29 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar29 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x14)" * (cast_expression "(undefined1 **)(puVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar29 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = pEVar34;" (assignment_expression "pEVar20 = pEVar34" identifier = identifier) ;) (expression_statement "reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));" (call_expression "reduce(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14))" identifier (argument_list "(pmVar33,(mp_srcptr)pEVar34,(mp_size_t)pEVar32,pmVar22,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14))" ( identifier , (cast_expression "(mp_srcptr)pEVar34" ( (type_descriptor "mp_srcptr" type_identifier) ) identifier) , (cast_expression "(mp_size_t)pEVar32" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , identifier , (pointer_expression "*(mp_size_t *)(puVar3 + 0x10)" * (cast_expression "(mp_size_t *)(puVar3 + 0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(gmp_pi1_t **)(puVar3 + 0x14)" * (cast_expression "(gmp_pi1_t **)(puVar3 + 0x14)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar36;" (assignment_expression "pEVar32 = pEVar36" identifier = identifier) ;) (if_statement "if (*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0) {\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }" if (parenthesized_expression "(*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0)" ( (binary_expression "*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50)) == 0" (pointer_expression "*(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50))" * (cast_expression "(int *)((int)pmVar33 + *(int *)(puVar29 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar33 + *(int *)(puVar29 + -0x50))" ( (binary_expression "(int)pmVar33 + *(int *)(puVar29 + -0x50)" (cast_expression "(int)pmVar33" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);\n    }" { (expression_statement "iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70);" (assignment_expression "iVar13 = (int)pmVar33 + *(int *)(puVar29 + -0x70)" identifier = (binary_expression "(int)pmVar33 + *(int *)(puVar29 + -0x70)" (cast_expression "(int)pmVar33" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar29 + -0x70)" * (cast_expression "(int *)(puVar29 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar6 == 0);" do (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar6 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);\n        iVar13 = iVar13 + -4;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)(iVar13 + -8);" (assignment_expression "piVar6 = (int *)(iVar13 + -8)" identifier = (cast_expression "(int *)(iVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -8)" ( (binary_expression "iVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar36 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar36 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar36 << 3)" ( (binary_expression "(int)pEVar36 << 3" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar36 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar36 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar36 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar36 * 8 + 4U" (binary_expression "(int)pEVar36 * 8" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -((int)pEVar36 * 8 + 8);\n      pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -((int)pEVar36 * 8 + 8);" (assignment_expression "iVar13 = -((int)pEVar36 * 8 + 8)" identifier = (unary_expression "-((int)pEVar36 * 8 + 8)" - (parenthesized_expression "((int)pEVar36 * 8 + 8)" ( (binary_expression "(int)pEVar36 * 8 + 8" (binary_expression "(int)pEVar36 * 8" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + 0x18)" ( (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }" else (compound_statement "{\n      pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar39 + -0x7d50)" * (pointer_expression "*(code **)(pcVar39 + -0x7d50)" * (cast_expression "(code **)(pcVar39 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d50)" ( (binary_expression "pcVar39 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }" if (parenthesized_expression "(pEVar30 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar30 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));\n      pcVar39 = *(code **)(puVar29 + -0x88);\n    }" { (expression_statement "dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70));" (assignment_expression "dinv = (gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" identifier = (cast_expression "(gmp_pi1_t *)\n             (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" ( (type_descriptor "gmp_pi1_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" (parenthesized_expression "(**(code **)(pcVar39 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar39 + -0x7d50)" * (pointer_expression "*(code **)(pcVar39 + -0x7d50)" * (cast_expression "(code **)(pcVar39 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d50)" ( (binary_expression "pcVar39 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar29 + -0x40,*(undefined4 *)(puVar29 + -0x70))" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar29 + -0x70)" * (cast_expression "(undefined4 *)(puVar29 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(gmp_pi1_t *)(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "gmp_pi1_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar29 + -0x70) + 7U" (pointer_expression "*(int *)(puVar29 + -0x70)" * (cast_expression "(int *)(puVar29 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar29 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar29 + -0x70) + 7U" (pointer_expression "*(int *)(puVar29 + -0x70)" * (cast_expression "(int *)(puVar29 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar29 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }" if (parenthesized_expression "(*(int *)(puVar29 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar29 + -0x50) + 8U" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar29 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar29 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar29 + -0x74) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar29 + -0x74)" * (cast_expression "(undefined1 **)(puVar29 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x74)" ( (binary_expression "puVar29 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }" else (compound_statement "{\n      uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      *(undefined4 *)(puVar29 + -0x74) = uVar44;\n    }" { (expression_statement "uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40);" (assignment_expression "uVar44 = (**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40)" identifier = (call_expression "(**(code **)(pcVar39 + -0x7d50))(puVar29 + -0x40)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar39 + -0x7d50)" * (pointer_expression "*(code **)(pcVar39 + -0x7d50)" * (cast_expression "(code **)(pcVar39 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d50)" ( (binary_expression "pcVar39 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) )))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar29 + -0x74) = uVar44;" (assignment_expression "*(undefined4 *)(puVar29 + -0x74) = uVar44" (pointer_expression "*(undefined4 *)(puVar29 + -0x74)" * (cast_expression "(undefined4 *)(puVar29 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x74)" ( (binary_expression "puVar29 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar29 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar29 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar29 + -100)" * (cast_expression "(undefined4 **)(puVar29 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) ))))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pwVar7 = pwVar8;" (assignment_expression "pwVar7 = pwVar8" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }" { (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar7 != (word *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar7 = (word *)((int)pwVar7 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar30->e_ident_magic_num" & (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pwVar7 = (word *)((int)pwVar7 + -1);" (assignment_expression "pwVar7 = (word *)((int)pwVar7 + -1)" identifier = (cast_expression "(word *)((int)pwVar7 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar7 + -1)" ( (binary_expression "(int)pwVar7 + -1" (cast_expression "(int)pwVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar7 != (word *)0x0)" ( (binary_expression "pwVar7 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar30->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar30->e_ident_magic_num" & (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]);" (assignment_expression "tp = (mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1])" identifier = (call_expression "(mp_ptr)(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1])" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1])" ( (binary_expression "0x20 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]" number_literal - (subscript_expression "(uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)mp >> 1]" (call_expression "(uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&((Elf32_Ehdr *)tp)->e_ident_magic_num)" ( (pointer_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ))) [ (binary_expression "(uint)mp >> 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ])) )))) ;) (expression_statement "iVar13 = 0x1f - (int)tp;" (assignment_expression "iVar13 = 0x1f - (int)tp" identifier = (binary_expression "0x1f - (int)tp" number_literal - (cast_expression "(int)tp" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "an = (mp_size_t)pEVar32;" (assignment_expression "an = (mp_size_t)pEVar32" identifier = (cast_expression "(mp_size_t)pEVar32" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (if_statement "if (iVar13 == 0) {\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }\n    else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }\n    }" { (if_statement "if (pEVar36 == pEVar32) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }" if (parenthesized_expression "(pEVar36 == pEVar32)" ( (binary_expression "pEVar36 == pEVar32" identifier == identifier) )) (compound_statement "{\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;\n        iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar38 = *(code **)(pcVar39 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n      }" { (expression_statement "pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1;" (assignment_expression "pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1" identifier = (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar36 * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "(int)pEVar36 * 4" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4;" (assignment_expression "iVar13 = *(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4" identifier = (binary_expression "*(int *)(puVar29 + -0x4c) + (int)pEVar36 * 4" (pointer_expression "*(int *)(puVar29 + -0x4c)" * (cast_expression "(int *)(puVar29 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar36 * 4" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        } while (pwVar8 != (word *)0xffffffff);" do (compound_statement "{\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }\n          pcVar12 = pcVar12 + -4;\n          iVar13 = iVar13 + -4;\n        }" { (expression_statement "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar13 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar13 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -4)" ( (binary_expression "iVar13 + -4" identifier + number_literal) ))))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20) {\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar12 + -4) != pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pcVar12 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar12 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + -4)" ( (binary_expression "pcVar12 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar38 = *(code **)(pcVar39 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;\n            goto LAB_00031264;\n          }" { (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7b2c);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7b2c)" * (cast_expression "(code **)(pcVar39 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7b2c)" ( (binary_expression "pcVar39 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20) goto LAB_00030dd0;" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar12 + -4) <= pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pcVar12 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar12 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + -4)" ( (binary_expression "pcVar12 + -4" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;)) (goto_statement "goto LAB_00031264;" goto statement_identifier ;) })) (expression_statement "pcVar12 = pcVar12 + -4;" (assignment_expression "pcVar12 = pcVar12 + -4" identifier = (binary_expression "pcVar12 + -4" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0xffffffff)" ( (binary_expression "pwVar8 != (word *)0xffffffff" identifier != (cast_expression "(word *)0xffffffff" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7b2c);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7b2c)" * (cast_expression "(code **)(pcVar39 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7b2c)" ( (binary_expression "pcVar39 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar20 = (Elf32_Ehdr *)dinv;" statement_identifier : (expression_statement "pEVar20 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32);" (call_expression "(*pcVar38)(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(dinv,dinv,*(undefined4 *)(puVar29 + -0x4c),pEVar32)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar29 + -0x4c)" * (cast_expression "(undefined4 *)(puVar29 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }" else (compound_statement "{\n      *(mp_srcptr *)(puVar29 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);\n      *(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);\n      mp = *(mp_srcptr *)(puVar29 + 8);\n    }" { (expression_statement "*(mp_srcptr *)(puVar29 + 8) = mp;" (assignment_expression "*(mp_srcptr *)(puVar29 + 8) = mp" (pointer_expression "*(mp_srcptr *)(puVar29 + 8)" * (cast_expression "(mp_srcptr *)(puVar29 + 8)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 8)" ( (binary_expression "puVar29 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);" (assignment_expression "tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1)" identifier = (call_expression "(mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(((int)mp << ((uint)tp & 0x1f)) << 1)" ( (binary_expression "((int)mp << ((uint)tp & 0x1f)) << 1" (parenthesized_expression "((int)mp << ((uint)tp & 0x1f))" ( (binary_expression "(int)mp << ((uint)tp & 0x1f)" (cast_expression "(int)mp" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "((uint)tp & 0x1f)" ( (binary_expression "(uint)tp & 0x1f" (cast_expression "(uint)tp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50);" (assignment_expression "*(byte **)(puVar29 + -0x80) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)" (pointer_expression "*(byte **)(puVar29 + -0x80)" * (cast_expression "(byte **)(puVar29 + -0x80)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x80)" ( (binary_expression "puVar29 + -0x80" identifier + number_literal) )))) = (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)" (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar29 + -0x7c) = *(int *)(pcVar39 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar29 + -0x7c)" * (cast_expression "(int *)(puVar29 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x7c)" ( (binary_expression "puVar29 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar39 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(pcVar39 + -0x7fcc)" * (cast_expression "(int *)(pcVar39 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fcc)" ( (binary_expression "pcVar39 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar29 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar29 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar29 + -0x60)" * (cast_expression "(undefined4 *)(puVar29 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar13 != 0);" do (compound_statement "{\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an);" (call_expression "(**(code **)(pcVar39 + -0x7cac))(pEVar34,dinv,an)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7cac))" ( (pointer_expression "**(code **)(pcVar39 + -0x7cac)" * (pointer_expression "*(code **)(pcVar39 + -0x7cac)" * (cast_expression "(code **)(pcVar39 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7cac)" ( (binary_expression "pcVar39 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar34,dinv,an)" ( identifier , identifier , identifier ))) ;) (expression_statement "an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0);" (assignment_expression "an = an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0)" identifier = (binary_expression "an * 2 - (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0)" (binary_expression "an * 2" identifier * number_literal) - (call_expression "(uint)(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4 + -1" (binary_expression "pEVar34->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar29 + -0x60)) * 4" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(an * 2 + *(int *)(puVar29 + -0x60)) * 4" (parenthesized_expression "(an * 2 + *(int *)(puVar29 + -0x60))" ( (binary_expression "an * 2 + *(int *)(puVar29 + -0x60)" (binary_expression "an * 2" identifier * number_literal) + (pointer_expression "*(int *)(puVar29 + -0x60)" * (cast_expression "(int *)(puVar29 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (an < (int)pEVar36) {\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }" if (parenthesized_expression "(an < (int)pEVar36)" ( (binary_expression "an < (int)pEVar36" identifier < (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n        }" { (expression_statement "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }" if (parenthesized_expression "((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar24._0_1_ = pEVar34->e_ident_magic_num;\n            uVar24._1_1_ = pEVar34->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar34->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar34->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }\n            pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar30->e_ident_magic_str[2] = (char)uVar24;\n          }" { (expression_statement "uVar24._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar34->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar9 = &pEVar34->e_ident_class;\n              do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);\n            }" { (expression_statement "pbVar9 = &pEVar34->e_ident_class;" (assignment_expression "pbVar9 = &pEVar34->e_ident_class" identifier = (pointer_expression "&pEVar34->e_ident_class" & (field_expression "pEVar34->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar30->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar24 = *(undefined4 *)pbVar9;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar9 = (byte *)pEVar20;\n              }" { (expression_statement "pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar30->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar9 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar9;" (assignment_expression "uVar24 = *(undefined4 *)pbVar9" identifier = (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar9 = (byte *)pEVar20;" (assignment_expression "pbVar9 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) *\n                        4" (cast_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)" (pointer_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x60)" * (cast_expression "(int *)(puVar29 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar30->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar30->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7d8c);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7d8c)" * (cast_expression "(code **)(pcVar39 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d8c)" ( (binary_expression "pcVar39 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }" else (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n          pcVar39 = *(code **)(puVar29 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n          (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n          pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          uVar44._0_1_ = pEVar34->e_ident_magic_num;\n          uVar44._1_1_ = pEVar34->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar34->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar34->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }\n          pcVar38 = *(code **)(pcVar39 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar36;\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar29 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar29 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar29 + -0x4c)" * (cast_expression "(undefined4 *)(puVar29 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x7c);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar29 + -0x7c)" * (cast_expression "(code **)(puVar29 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x7c)" ( (binary_expression "puVar29 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar29 + -0x74)" * (cast_expression "(undefined4 *)(puVar29 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x74)" ( (binary_expression "puVar29 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar29 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar39)(pEVar34,an,uVar44,pEVar36);" (call_expression "(*pcVar39)(pEVar34,an,uVar44,pEVar36)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar34,an,uVar44,pEVar36)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar36[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar36[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar36[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar36[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar36[-1].e_shstrndx" & (field_expression "pEVar36[-1].e_shstrndx" (subscript_expression "pEVar36[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar44._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "uVar44._0_1_ = pEVar34->e_ident_magic_num" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "uVar44._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "uVar44._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "uVar44._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "uVar44._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "uVar44._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "uVar44._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }\n          else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n            ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;\n          }" { (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(char)((uint)uVar44 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 0x18)" ( (binary_expression "(uint)uVar44 >> 0x18" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar44 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 0x10)" ( (binary_expression "(uint)uVar44 >> 0x10" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar44 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 8)" ( (binary_expression "(uint)uVar44 >> 8" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }" else (compound_statement "{\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar9 = &pEVar34->e_ident_class;\n            do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar29 + -0x80) = uVar44;\n          }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar9 = &pEVar34->e_ident_class;" (assignment_expression "pbVar9 = &pEVar34->e_ident_class" identifier = (pointer_expression "&pEVar34->e_ident_class" & (field_expression "pEVar34->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n              pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n              pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n              pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n              pEVar30->e_ident_magic_str[2] = (char)uVar44;\n              an = (mp_size_t)(pbVar9 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar44 = *(undefined4 *)pbVar9;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar9 = (byte *)an;\n            }" { (expression_statement "pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar30->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar44 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 0x18)" ( (binary_expression "(uint)uVar44 >> 0x18" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar44 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 0x10)" ( (binary_expression "(uint)uVar44 >> 0x10" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar44 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar44 >> 8)" ( (binary_expression "(uint)uVar44 >> 8" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar30->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "an = (mp_size_t)(pbVar9 + 4);" (assignment_expression "an = (mp_size_t)(pbVar9 + 4)" identifier = (call_expression "(mp_size_t)(pbVar9 + 4)" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar44 = *(undefined4 *)pbVar9;" (assignment_expression "uVar44 = *(undefined4 *)pbVar9" identifier = (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar9 = (byte *)an;" (assignment_expression "pbVar9 = (byte *)an" identifier = (cast_expression "(byte *)an" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar29 + -0x80) = uVar44;" (assignment_expression "**(undefined4 **)(puVar29 + -0x80) = uVar44" (pointer_expression "**(undefined4 **)(puVar29 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar29 + -0x80)" * (cast_expression "(undefined4 **)(puVar29 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x80)" ( (binary_expression "puVar29 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7d8c);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7d8c)" * (cast_expression "(code **)(pcVar39 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7d8c)" ( (binary_expression "pcVar39 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)an;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)an" identifier = (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "an = (mp_size_t)pEVar36;" (assignment_expression "an = (mp_size_t)pEVar36" identifier = (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) (if_statement "if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }" if (parenthesized_expression "((int)tp < 0)" ( (binary_expression "(int)tp < 0" (cast_expression "(int)tp" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar29 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar38)(pEVar34,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar29 + -100);" (assignment_expression "uVar44 = *(undefined4 *)(puVar29 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar29 + -100)" * (cast_expression "(undefined4 *)(puVar29 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -100)" ( (binary_expression "puVar29 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*pcVar38)(pEVar34,dinv,an,uVar44);" (call_expression "(*pcVar38)(pEVar34,dinv,an,uVar44)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pEVar34,dinv,an,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0));" (assignment_expression "an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0))" identifier = (binary_expression "(int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0))" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0))" ( (binary_expression "(int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0)" (cast_expression "(int)&((Elf32_Ehdr *)an)->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) - (call_expression "(uint)(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1)" * (cast_expression "(int *)(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1)" ( (binary_expression "pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4 + -1" (binary_expression "pEVar34->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))) * 4" (cast_expression "(int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60)))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60)))" ( (binary_expression "&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))" (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar29 + -0x60)" (pointer_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x60)" * (cast_expression "(int *)(puVar29 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) ))))) )))) ))) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (an < (int)pEVar36) {\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }" if (parenthesized_expression "(an < (int)pEVar36)" ( (binary_expression "an < (int)pEVar36" identifier < (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }" { (expression_statement "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }" if (parenthesized_expression "((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar25._0_1_ = pEVar34->e_ident_magic_num;\n              uVar25._1_1_ = pEVar34->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar34->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar34->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }" { (expression_statement "uVar25._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar34->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }\n              else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;\n              }" { (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(char)((uint)uVar25 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 0x18)" ( (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar25 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 0x10)" ( (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar25 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 8)" ( (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }" else (compound_statement "{\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar9 = &pEVar34->e_ident_class;\n                do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar9 = &pEVar34->e_ident_class;" (assignment_expression "pbVar9 = &pEVar34->e_ident_class" identifier = (pointer_expression "&pEVar34->e_ident_class" & (field_expression "pEVar34->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                  pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n                  pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n                  pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n                  pEVar30->e_ident_magic_str[2] = (char)uVar25;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar25 = *(undefined4 *)pbVar9;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar9 = (byte *)pEVar20;\n                }" { (expression_statement "pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar30->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar25 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 0x18)" ( (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar30->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar25 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 0x10)" ( (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar30->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar25 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar25 >> 8)" ( (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar30->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar30->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar9 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar9 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar25 = *(undefined4 *)pbVar9;" (assignment_expression "uVar25 = *(undefined4 *)pbVar9" identifier = (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar9 = (byte *)pEVar20;" (assignment_expression "pbVar9 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25;" (assignment_expression "*(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)\n                     = uVar25" (pointer_expression "*(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)" * (cast_expression "(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)) * 4" (cast_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar29 + -0x60)" (pointer_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x60)" * (cast_expression "(int *)(puVar29 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x60)" ( (binary_expression "puVar29 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }" else (compound_statement "{\n            uVar44 = *(undefined4 *)(puVar29 + -0x4c);\n            pcVar39 = *(code **)(puVar29 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n            (*pcVar39)(pEVar34,an,uVar44,pEVar36);\n            pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n            pcVar39 = *(code **)(puVar29 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;\n            pEVar27 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar34;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n          }" { (expression_statement "uVar44 = *(undefined4 *)(puVar29 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar29 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar29 + -0x4c)" * (cast_expression "(undefined4 *)(puVar29 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x7c);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar29 + -0x7c)" * (cast_expression "(code **)(puVar29 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x7c)" ( (binary_expression "puVar29 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar29 + -0x74)" * (cast_expression "(undefined4 *)(puVar29 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x74)" ( (binary_expression "puVar29 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar29 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar39)(pEVar34,an,uVar44,pEVar36);" (call_expression "(*pcVar39)(pEVar34,an,uVar44,pEVar36)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar34,an,uVar44,pEVar36)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar36[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar36[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar36[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar36[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar36[-1].e_shstrndx" & (field_expression "pEVar36[-1].e_shstrndx" (subscript_expression "pEVar36[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar34->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar34->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar34->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar34->e_ident_magic_num" & (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar30 = pEVar34;" (assignment_expression "pEVar30 = pEVar34" identifier = identifier) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }" { (expression_statement "*(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) = identifier) ;) (expression_statement "an = (mp_size_t)pEVar36;" (assignment_expression "an = (mp_size_t)pEVar36" identifier = (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar29 + -0x80) = pEVar20;\n              an = (mp_size_t)pEVar36;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar27->e_ident_magic_num" & (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar30->e_ident_class" & (field_expression "pEVar30->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar29 + -0x80) = pEVar20;" (assignment_expression "**(undefined4 **)(puVar29 + -0x80) = pEVar20" (pointer_expression "**(undefined4 **)(puVar29 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar29 + -0x80)" * (cast_expression "(undefined4 **)(puVar29 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x80)" ( (binary_expression "puVar29 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "an = (mp_size_t)pEVar36;" (assignment_expression "an = (mp_size_t)pEVar36" identifier = (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) }))) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "tp = (mp_ptr)((int)tp << 1);" (assignment_expression "tp = (mp_ptr)((int)tp << 1)" identifier = (call_expression "(mp_ptr)((int)tp << 1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "((int)tp << 1)" ( (binary_expression "(int)tp << 1" (cast_expression "(int)tp" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) ;) (expression_statement "mp = *(mp_srcptr *)(puVar29 + 8);" (assignment_expression "mp = *(mp_srcptr *)(puVar29 + 8)" identifier = (pointer_expression "*(mp_srcptr *)(puVar29 + 8)" * (cast_expression "(mp_srcptr *)(puVar29 + 8)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 8)" ( (binary_expression "puVar29 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar30 = (Elf32_Ehdr *)0x0;" statement_identifier : (expression_statement "pEVar30 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar29 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar29 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar29 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x6c)" ( (binary_expression "puVar29 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar27 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar27 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      piVar6 = *(int **)(puVar29 + -0x54);\n      if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }\n      pmVar31 = (mp_srcptr)((uint)mp & 1);\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar27 = (Elf32_Ehdr *)dinv;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }" statement_identifier : (if_statement "if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }" if (parenthesized_expression "((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0))" ( (binary_expression "(0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)" (parenthesized_expression "(0 < an)" ( (binary_expression "0 < an" number_literal < identifier) )) && (parenthesized_expression "(*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)" ( (binary_expression "*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0" (pointer_expression "*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" * (cast_expression "(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;\n        do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);\n      }" { (expression_statement "pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;" (assignment_expression "pcVar12 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1" identifier = (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal)) ;) (do_statement "do {\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        } while (*piVar6 == 0);" do (compound_statement "{\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar6 = (int *)(pcVar12 + -8);\n          pcVar12 = pcVar12 + -4;\n        }" { (expression_statement "an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;" (assignment_expression "an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" identifier = (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal)) ;) (if_statement "if ((undefined1 *)an == (undefined1 *)0x0) {\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "((undefined1 *)an == (undefined1 *)0x0)" ( (binary_expression "(undefined1 *)an == (undefined1 *)0x0" (cast_expression "(undefined1 *)an" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pmVar31 = (mp_srcptr)((uint)mp & 1);\n            piVar6 = *(int **)(puVar29 + -0x54);\n            if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "pmVar31 = (mp_srcptr)((uint)mp & 1);" (assignment_expression "pmVar31 = (mp_srcptr)((uint)mp & 1)" identifier = (call_expression "(mp_srcptr)((uint)mp & 1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar6 = *(int **)(puVar29 + -0x54);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))" ( (binary_expression "(pmVar31 == (mp_srcptr)0x0) ||\n               (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))" (parenthesized_expression "(pmVar31 == (mp_srcptr)0x0)" ( (binary_expression "pmVar31 == (mp_srcptr)0x0" identifier == (cast_expression "(mp_srcptr)0x0" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))" ( (comma_expression "piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar29 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar29 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x5c) + 4" (pointer_expression "*(int *)(puVar29 + -0x5c)" * (cast_expression "(int *)(puVar29 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x5c)" ( (binary_expression "puVar29 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)(pcVar12 + -8);" (assignment_expression "piVar6 = (int *)(pcVar12 + -8)" identifier = (cast_expression "(int *)(pcVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + -8)" ( (binary_expression "pcVar12 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = pcVar12 + -4;" (assignment_expression "pcVar12 = pcVar12 + -4" identifier = (binary_expression "pcVar12 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) )) ;) }))) (expression_statement "pmVar31 = (mp_srcptr)((uint)mp & 1);" (assignment_expression "pmVar31 = (mp_srcptr)((uint)mp & 1)" identifier = (call_expression "(mp_srcptr)((uint)mp & 1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar6 = *(int **)(puVar29 + -0x54);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }" if (parenthesized_expression "((pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)))" ( (binary_expression "(pmVar31 == (mp_srcptr)0x0) ||\n         (piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))" (parenthesized_expression "(pmVar31 == (mp_srcptr)0x0)" ( (binary_expression "pmVar31 == (mp_srcptr)0x0" identifier == (cast_expression "(mp_srcptr)0x0" ( (type_descriptor "mp_srcptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4))" ( (comma_expression "piVar6 = *(int **)(puVar29 + -0x54), -1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar29 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar29 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar29 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x5c) + 4" (pointer_expression "*(int *)(puVar29 + -0x5c)" * (cast_expression "(int *)(puVar29 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x5c)" ( (binary_expression "puVar29 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);\n        if (*piVar6 < an) goto LAB_00031474;\nLAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar38 = *(code **)(pcVar39 + -0x7a84);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7a84);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7a84)" * (cast_expression "(code **)(pcVar39 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7a84)" ( (binary_expression "pcVar39 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar6 < an) goto LAB_00031474;" if (parenthesized_expression "(*piVar6 < an)" ( (binary_expression "*piVar6 < an" (pointer_expression "*piVar6" * identifier) < identifier) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        pmVar31 = (mp_srcptr)((uint)mp & 1);" statement_identifier : (expression_statement "pmVar31 = (mp_srcptr)((uint)mp & 1);" (assignment_expression "pmVar31 = (mp_srcptr)((uint)mp & 1)" identifier = (call_expression "(mp_srcptr)((uint)mp & 1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;" (assignment_expression "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an" (pointer_expression "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4)" * (cast_expression "(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x54) + 4" (pointer_expression "*(int *)(puVar29 + -0x54)" * (cast_expression "(int *)(puVar29 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }" else (compound_statement "{\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);\n        iVar15._0_1_ = pEVar30->e_ident_magic_num;\n        iVar15._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar15._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar15._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }\n        an = *(mp_size_t *)(puVar29 + -0x78);\n        *(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;\n      }" { (if_statement "if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8);" (assignment_expression "tp = *(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8)" identifier = (pointer_expression "*(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8)" * (cast_expression "(mp_ptr *)(*(int *)(puVar29 + -0x68) + 8)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar29 + -0x68) + 8" (pointer_expression "*(int *)(puVar29 + -0x68)" * (cast_expression "(int *)(puVar29 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x68)" ( (binary_expression "puVar29 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)tp;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)tp" identifier = (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an);" (assignment_expression "iVar13 = (**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an)" identifier = (call_expression "(**(code **)(pcVar39 + -0x7b2c))(dinv,tp,dinv,an)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7b2c))" ( (pointer_expression "**(code **)(pcVar39 + -0x7b2c)" * (pointer_expression "*(code **)(pcVar39 + -0x7b2c)" * (cast_expression "(code **)(pcVar39 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7b2c)" ( (binary_expression "pcVar39 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(dinv,tp,dinv,an)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }\n        else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));\n          pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n          pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;" statement_identifier : (if_statement "if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)) goto LAB_00031130;" if (parenthesized_expression "((dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an))" ( (binary_expression "(dinv == (gmp_pi1_t *)tp) || ((int)pEVar36 <= an)" (parenthesized_expression "(dinv == (gmp_pi1_t *)tp)" ( (binary_expression "dinv == (gmp_pi1_t *)tp" identifier == (cast_expression "(gmp_pi1_t *)tp" ( (type_descriptor "gmp_pi1_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "((int)pEVar36 <= an)" ( (binary_expression "(int)pEVar36 <= an" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70));" (assignment_expression "pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70))" ( (binary_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar29 + -0x70)" (pointer_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x70)" * (cast_expression "(int *)(puVar29 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);" (assignment_expression "pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1" (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar10);" do (compound_statement "{\n            uVar44 = *(undefined4 *)pbVar10;\n            pbVar10 = pbVar10 + 4;\n            *(undefined4 *)pbVar9 = uVar44;\n            pbVar9 = pbVar9 + 4;\n          }" { (expression_statement "uVar44 = *(undefined4 *)pbVar10;" (assignment_expression "uVar44 = *(undefined4 *)pbVar10" identifier = (pointer_expression "*(undefined4 *)pbVar10" * (cast_expression "(undefined4 *)pbVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar9 = uVar44;" (assignment_expression "*(undefined4 *)pbVar9 = uVar44" (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar20 != (Elf32_Ehdr *)pbVar10)" ( (binary_expression "pEVar20 != (Elf32_Ehdr *)pbVar10" identifier != (cast_expression "(Elf32_Ehdr *)pbVar10" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar13 = *(int *)(puVar29 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar29 + -0x50)" identifier = (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }" else (compound_statement "{\n          if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);\n        }" { (if_statement "if (an < (int)pEVar36) {\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "(an < (int)pEVar36)" ( (binary_expression "an < (int)pEVar36" identifier < (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar9;\n            *(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar30 = pEVar20;\n            while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1" (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);" (assignment_expression "pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pbVar9;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pbVar9" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar9" * (cast_expression "(Elf32_Ehdr **)pbVar9" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar10 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar10" * (cast_expression "(undefined1 **)pbVar10" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar20[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar20[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shstrndx" & (field_expression "pEVar20[-1].e_shstrndx" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar30 = pEVar20;" (assignment_expression "pEVar30 = pEVar20" identifier = identifier) ;) (while_statement "while (an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0) {\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }" while (parenthesized_expression "(an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0)" ( (comma_expression "an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str,\n                  pEVar30 == (Elf32_Ehdr *)0x0" (assignment_expression "an = (mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str" identifier = (field_expression "(mp_size_t)((Elf32_Ehdr *)an)->e_ident_magic_str" (call_expression "(mp_size_t)((Elf32_Ehdr *)an)" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) -> field_identifier)) , (binary_expression "pEVar30 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n              pbVar10 = pbVar10 + 4;\n              if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;\n              pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);\n              pbVar9 = pbVar9 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar10 = pEVar20;\n            }" { (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar36 == (Elf32_Ehdr *)an) goto LAB_00031130;" if (parenthesized_expression "(pEVar36 == (Elf32_Ehdr *)an)" ( (binary_expression "pEVar36 == (Elf32_Ehdr *)an" identifier == (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(pbVar9 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar9 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar9 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar9 + 4)" ( (binary_expression "pbVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar30[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar30[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar30[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar30[-1].e_shstrndx" & (field_expression "pEVar30[-1].e_shstrndx" (subscript_expression "pEVar30[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar10 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pbVar10 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pbVar10" * (cast_expression "(Elf32_Ehdr **)pbVar10" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar13 = *(int *)(puVar29 + -0x50);" statement_identifier : (expression_statement "iVar13 = *(int *)(puVar29 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar29 + -0x50)" identifier = (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13)" identifier = (cast_expression "(Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13)" ( (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar13" (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + identifier) )))) ;) (expression_statement "iVar15._0_1_ = pEVar30->e_ident_magic_num;" (assignment_expression "iVar15._0_1_ = pEVar30->e_ident_magic_num" (field_expression "iVar15._0_1_" identifier . field_identifier) = (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar15._1_1_ = pEVar30->e_ident_magic_str[0];" (assignment_expression "iVar15._1_1_ = pEVar30->e_ident_magic_str[0]" (field_expression "iVar15._1_1_" identifier . field_identifier) = (subscript_expression "pEVar30->e_ident_magic_str[0]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar15._2_1_ = pEVar30->e_ident_magic_str[1];" (assignment_expression "iVar15._2_1_ = pEVar30->e_ident_magic_str[1]" (field_expression "iVar15._2_1_" identifier . field_identifier) = (subscript_expression "pEVar30->e_ident_magic_str[1]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar15._3_1_ = pEVar30->e_ident_magic_str[2];" (assignment_expression "iVar15._3_1_ = pEVar30->e_ident_magic_str[2]" (field_expression "iVar15._3_1_" identifier . field_identifier) = (subscript_expression "pEVar30->e_ident_magic_str[2]" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar15 == 0) {\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar13 = *(int *)(puVar29 + -0x78);\n          pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);\n          *(int *)(puVar29 + -0x78) = iVar13;\n        }" { (expression_statement "iVar13 = *(int *)(puVar29 + -0x78);" (assignment_expression "iVar13 = *(int *)(puVar29 + -0x78)" identifier = (pointer_expression "*(int *)(puVar29 + -0x78)" * (cast_expression "(int *)(puVar29 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70);" (assignment_expression "pbVar9 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70)" identifier = (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x70)" (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x70)" * (cast_expression "(int *)(puVar29 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x70)" ( (binary_expression "puVar29 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          } while (*piVar6 == 0);" do (compound_statement "{\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar6 = (int *)(pbVar9 + -8);\n            pbVar9 = pbVar9 + -4;\n          }" { (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 0) {\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar6 = *(int **)(puVar29 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar6 = *(int **)(puVar29 + -0x54);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)(pbVar9 + -8);" (assignment_expression "piVar6 = (int *)(pbVar9 + -8)" identifier = (cast_expression "(int *)(pbVar9 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + -8)" ( (binary_expression "pbVar9 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar9 = pbVar9 + -4;" (assignment_expression "pbVar9 = pbVar9 + -4" identifier = (binary_expression "pbVar9 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) )) ;) (expression_statement "*(int *)(puVar29 + -0x78) = iVar13;" (assignment_expression "*(int *)(puVar29 + -0x78) = iVar13" (pointer_expression "*(int *)(puVar29 + -0x78)" * (cast_expression "(int *)(puVar29 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)) {\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78))" ( (binary_expression "**(int **)(puVar29 + -0x54) < *(int *)(puVar29 + -0x78)" (pointer_expression "**(int **)(puVar29 + -0x54)" * (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar29 + -0x78)" * (cast_expression "(int *)(puVar29 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          an = *(mp_size_t *)(puVar29 + -0x78);\n          pcVar38 = *(code **)(pcVar39 + -0x7a84);\nLAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar38)(*(undefined4 *)(puVar29 + -0x54));\n          pcVar39 = *(code **)(puVar29 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "an = *(mp_size_t *)(puVar29 + -0x78);" (assignment_expression "an = *(mp_size_t *)(puVar29 + -0x78)" identifier = (pointer_expression "*(mp_size_t *)(puVar29 + -0x78)" * (cast_expression "(mp_size_t *)(puVar29 + -0x78)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar39 + -0x7a84);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7a84)" * (cast_expression "(code **)(pcVar39 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7a84)" ( (binary_expression "pcVar39 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar20 = (Elf32_Ehdr *)an;" statement_identifier : (expression_statement "pEVar20 = (Elf32_Ehdr *)an;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)an" identifier = (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(*pcVar38)(*(undefined4 *)(puVar29 + -0x54));" (call_expression "(*pcVar38)(*(undefined4 *)(puVar29 + -0x54))" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(*(undefined4 *)(puVar29 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar29 + -0x54)" * (cast_expression "(undefined4 *)(puVar29 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "an = *(mp_size_t *)(puVar29 + -0x78);" (assignment_expression "an = *(mp_size_t *)(puVar29 + -0x78)" identifier = (pointer_expression "*(mp_size_t *)(puVar29 + -0x78)" * (cast_expression "(mp_size_t *)(puVar29 + -0x78)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x78)" ( (binary_expression "puVar29 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an;" (assignment_expression "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4) = an" (pointer_expression "*(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4)" * (cast_expression "(mp_size_t *)(*(int *)(puVar29 + -0x54) + 4)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x54) + 4" (pointer_expression "*(int *)(puVar29 + -0x54)" * (cast_expression "(int *)(puVar29 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pmVar31 = (mp_srcptr)((uint)mp & 1);" (assignment_expression "pmVar31 = (mp_srcptr)((uint)mp & 1)" identifier = (call_expression "(mp_srcptr)((uint)mp & 1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8);" (assignment_expression "puVar23 = *(undefined4 **)(*(int *)(puVar29 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar29 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar29 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar29 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar29 + -0x54) + 8" (pointer_expression "*(int *)(puVar29 + -0x54)" * (cast_expression "(int *)(puVar29 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar23;" (assignment_expression "puVar4 = puVar23" identifier = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar20;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar20;" (assignment_expression "*puVar4 = pEVar20" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar27->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier = (binary_expression "puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar23 = pEVar20;" (assignment_expression "*puVar23 = pEVar20" (pointer_expression "*puVar23" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);\n      iVar28 = *(int *)(puVar29 + -0x88);\n      iVar13 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;\n      tp = (mp_ptr)pEVar27;\n      if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);\n      pcVar39 = *(code **)(puVar29 + -0x88);\n      pmVar31 = mp;\nLAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);\nLAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27);" (assignment_expression "iVar15 = (**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27)" identifier = (call_expression "(**(code **)(pcVar39 + -0x7ad4))(pEVar34,dinv,an,pEVar27)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar39 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar39 + -0x7ad4)" * (cast_expression "(code **)(pcVar39 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7ad4)" ( (binary_expression "pcVar39 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar34,dinv,an,pEVar27)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar29 + -0x88);" (assignment_expression "iVar28 = *(int *)(puVar29 + -0x88)" identifier = (pointer_expression "*(int *)(puVar29 + -0x88)" * (cast_expression "(int *)(puVar29 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = an * 4;" (assignment_expression "iVar13 = an * 4" identifier = (binary_expression "an * 4" identifier * number_literal)) ;) (expression_statement "an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));" (assignment_expression "an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0))" identifier = (call_expression "(mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0))" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0)" (pointer_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15;" (assignment_expression "*(int *)(pEVar34->e_ident_magic_str + iVar13 + -1) = iVar15" (pointer_expression "*(int *)(pEVar34->e_ident_magic_str + iVar13 + -1)" * (cast_expression "(int *)(pEVar34->e_ident_magic_str + iVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar34->e_ident_magic_str + iVar13 + -1)" ( (binary_expression "pEVar34->e_ident_magic_str + iVar13 + -1" (binary_expression "pEVar34->e_ident_magic_str + iVar13" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "tp = (mp_ptr)pEVar27;" (assignment_expression "tp = (mp_ptr)pEVar27" identifier = (cast_expression "(mp_ptr)pEVar27" ( (type_descriptor "mp_ptr" type_identifier) ) identifier)) ;) (if_statement "if ((int)pEVar36 <= an) {\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar36 <= an)" ( (binary_expression "(int)pEVar36 <= an" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n        pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;\n        mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);\n        iVar28 = *(int *)(puVar29 + -0x88);\n        uVar17._0_1_ = pEVar34->e_ident_magic_num;\n        uVar17._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }\nLAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c);" (assignment_expression "pmVar31 = *(mp_srcptr *)(puVar29 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar29 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar29 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x4c)" ( (binary_expression "puVar29 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar29 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar29 + -0x74)" * (cast_expression "(undefined4 *)(puVar29 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x74)" ( (binary_expression "puVar29 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar29 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar29 + -0x44" identifier + number_literal)) ;) (expression_statement "mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));" (call_expression "mod((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14))" identifier (argument_list "((mp_ptr)pEVar34,an,pmVar31,(mp_size_t)pEVar36,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14))" ( (cast_expression "(mp_ptr)pEVar34" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , identifier , identifier , (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , (pointer_expression "*(gmp_pi1_t **)(puVar3 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar3 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar3 + 0x14)" * (cast_expression "(mp_ptr *)(puVar3 + 0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar36[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar36[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar36[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar36[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar36[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar36[-1].e_shstrndx" & (field_expression "pEVar36[-1].e_shstrndx" (subscript_expression "pEVar36[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar28 = *(int *)(puVar29 + -0x88);" (assignment_expression "iVar28 = *(int *)(puVar29 + -0x88)" identifier = (pointer_expression "*(int *)(puVar29 + -0x88)" * (cast_expression "(int *)(puVar29 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "uVar17._0_1_ = pEVar34->e_ident_magic_num" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "uVar17._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "uVar17._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "uVar17._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "uVar17._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "uVar17._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "uVar17._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar20 = pEVar34;" (assignment_expression "pEVar20 = pEVar34" identifier = identifier) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          ((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;\n          an = (mp_size_t)pEVar36;\n        }" { (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[0]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[1]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str[2]" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "an = (mp_size_t)pEVar36;" (assignment_expression "an = (mp_size_t)pEVar36" identifier = (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }" else (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar36;\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar17;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar17._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar17._0_1_ = pEVar20->e_ident_class" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar17._1_1_ = pEVar20->e_ident_data" (field_expression "uVar17._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar17._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar17._2_1_ = pEVar20->e_ident_version" (field_expression "uVar17._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar17._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar17._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar17._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17;" (assignment_expression "*(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)) =\n               uVar17" (pointer_expression "*(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50))" * (cast_expression "(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50))" ( (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar29 + -0x50)" (pointer_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (pointer_expression "*(int *)(puVar29 + -0x50)" * (cast_expression "(int *)(puVar29 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x50)" ( (binary_expression "puVar29 + -0x50" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "an = (mp_size_t)pEVar36;" (assignment_expression "an = (mp_size_t)pEVar36" identifier = (cast_expression "(mp_size_t)pEVar36" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar20 = (Elf32_Ehdr *)dinv;" statement_identifier : (expression_statement "pEVar20 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c));" (call_expression "(**(code **)(iVar28 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c))" (parenthesized_expression "(**(code **)(iVar28 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar28 + -0x7ae0)" * (pointer_expression "*(code **)(iVar28 + -0x7ae0)" * (cast_expression "(code **)(iVar28 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7ae0)" ( (binary_expression "iVar28 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(dinv,dinv,an,*(undefined4 *)(puVar29 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar29 + -0x6c)" * (cast_expression "(undefined4 *)(puVar29 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x6c)" ( (binary_expression "puVar29 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)(an + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)(an + -0x34))" ( (cast_expression "(Elf32_Ehdr *)(an + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(an + -0x34)" ( (binary_expression "an + -0x34" identifier + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar21._0_1_ = pEVar34->e_ident_magic_num;\n        uVar21._1_1_ = pEVar34->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar34->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar34->e_ident_magic_str[2];\n        pEVar27 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar34;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar21._0_1_ = pEVar34->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar34->e_ident_magic_num" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar34->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar34->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._2_1_ = pEVar34->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar34->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._3_1_ = pEVar34->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar34->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" identifier . field_identifier) = (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar20 = pEVar34;" (assignment_expression "pEVar20 = pEVar34" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar21;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar21._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar21._0_1_ = pEVar20->e_ident_class" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar21._1_1_ = pEVar20->e_ident_data" (field_expression "uVar21._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar21._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar21._2_1_ = pEVar20->e_ident_version" (field_expression "uVar21._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar21._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar21._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar21._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4" (field_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)dinv)" ( (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "an * 4" identifier * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar20 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27);" (call_expression "(**(code **)(iVar28 + -0x7ae0))(dinv,dinv,0,pEVar27)" (parenthesized_expression "(**(code **)(iVar28 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar28 + -0x7ae0)" * (pointer_expression "*(code **)(iVar28 + -0x7ae0)" * (cast_expression "(code **)(iVar28 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7ae0)" ( (binary_expression "iVar28 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(dinv,dinv,0,pEVar27)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pmVar31 = mp;" (assignment_expression "pmVar31 = mp" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar6 = *(int **)(puVar29 + -0x54);" statement_identifier : (expression_statement "piVar6 = *(int **)(puVar29 + -0x54);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x54)" identifier = (pointer_expression "*(int **)(puVar29 + -0x54)" * (cast_expression "(int **)(puVar29 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar6 < 0) {\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar6 < 0)" ( (binary_expression "*piVar6 < 0" (pointer_expression "*piVar6" * identifier) < number_literal) )) (compound_statement "{\n        tp = *(mp_ptr *)(puVar29 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar39 + -0x7a84))(tp);\n        pcVar39 = *(code **)(puVar29 + -0x88);\n        ((Elf32_Ehdr *)tp)->e_ident_class = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_data = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_version = 0;\n        ((Elf32_Ehdr *)tp)->e_ident_osabi = 0;\n      }" { (expression_statement "tp = *(mp_ptr *)(puVar29 + -0x54);" (assignment_expression "tp = *(mp_ptr *)(puVar29 + -0x54)" identifier = (pointer_expression "*(mp_ptr *)(puVar29 + -0x54)" * (cast_expression "(mp_ptr *)(puVar29 + -0x54)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar39 + -0x7a84))(tp);" (call_expression "(**(code **)(pcVar39 + -0x7a84))(tp)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7a84))" ( (pointer_expression "**(code **)(pcVar39 + -0x7a84)" * (pointer_expression "*(code **)(pcVar39 + -0x7a84)" * (cast_expression "(code **)(pcVar39 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7a84)" ( (binary_expression "pcVar39 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(tp)" ( identifier ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "((Elf32_Ehdr *)tp)->e_ident_class = 0;" (assignment_expression "((Elf32_Ehdr *)tp)->e_ident_class = 0" (field_expression "((Elf32_Ehdr *)tp)->e_ident_class" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "((Elf32_Ehdr *)tp)->e_ident_data = 0;" (assignment_expression "((Elf32_Ehdr *)tp)->e_ident_data = 0" (field_expression "((Elf32_Ehdr *)tp)->e_ident_data" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "((Elf32_Ehdr *)tp)->e_ident_version = 0;" (assignment_expression "((Elf32_Ehdr *)tp)->e_ident_version = 0" (field_expression "((Elf32_Ehdr *)tp)->e_ident_version" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "((Elf32_Ehdr *)tp)->e_ident_osabi = 0;" (assignment_expression "((Elf32_Ehdr *)tp)->e_ident_osabi = 0" (field_expression "((Elf32_Ehdr *)tp)->e_ident_osabi" (parenthesized_expression "((Elf32_Ehdr *)tp)" ( (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar29 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar29 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar29 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar29 + -0x54) + 4" (pointer_expression "*(int *)(puVar29 + -0x54)" * (cast_expression "(int *)(puVar29 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x54)" ( (binary_expression "puVar29 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);" statement_identifier : (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar29 + -0x40)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar29 + -0x40)" * (cast_expression "(tmp_reentrant_t **)(puVar29 + -0x40)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x40)" ( (binary_expression "puVar29 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar6 = *(int **)(puVar29 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x58)" identifier = (pointer_expression "*(int **)(puVar29 + -0x58)" * (cast_expression "(int **)(puVar29 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x58)" ( (binary_expression "puVar29 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(ptVar16 != (tmp_reentrant_t *)0x0)" ( (binary_expression "ptVar16 != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar39 = *(code **)(pcVar39 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7a2c);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7a2c)" * (cast_expression "(code **)(pcVar39 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7a2c)" ( (binary_expression "pcVar39 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }" else (compound_statement "{\n    pcVar39 = *(code **)(pcVar38 + 0x66c10);\n    *(mp_srcptr *)(puVar29 + -0x3c) = mp;\n    *(undefined4 *)(puVar29 + -0x34) = 1;\n    *(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;\n    (*pcVar39)();\n    pcVar39 = *(code **)(puVar29 + -0x88);\nLAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);\n  }" { (expression_statement "pcVar39 = *(code **)(pcVar38 + 0x66c10);" (assignment_expression "pcVar39 = *(code **)(pcVar38 + 0x66c10)" identifier = (pointer_expression "*(code **)(pcVar38 + 0x66c10)" * (cast_expression "(code **)(pcVar38 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x66c10)" ( (binary_expression "pcVar38 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(mp_srcptr *)(puVar29 + -0x3c) = mp;" (assignment_expression "*(mp_srcptr *)(puVar29 + -0x3c) = mp" (pointer_expression "*(mp_srcptr *)(puVar29 + -0x3c)" * (cast_expression "(mp_srcptr *)(puVar29 + -0x3c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x3c)" ( (binary_expression "puVar29 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar29 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar29 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar29 + -0x34)" * (cast_expression "(undefined4 *)(puVar29 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x34)" ( (binary_expression "puVar29 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar29 + -0x30) = puVar29 + -0x3c" (pointer_expression "*(undefined1 **)(puVar29 + -0x30)" * (cast_expression "(undefined1 **)(puVar29 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x30)" ( (binary_expression "puVar29 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar29 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar39 = *(code **)(puVar29 + -0x88);" (assignment_expression "pcVar39 = *(code **)(puVar29 + -0x88)" identifier = (pointer_expression "*(code **)(puVar29 + -0x88)" * (cast_expression "(code **)(puVar29 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x88)" ( (binary_expression "puVar29 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar6 = *(int **)(puVar29 + -0x58);" statement_identifier : (expression_statement "piVar6 = *(int **)(puVar29 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar29 + -0x58)" identifier = (pointer_expression "*(int **)(puVar29 + -0x58)" * (cast_expression "(int **)(puVar29 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + -0x58)" ( (binary_expression "puVar29 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar29 + -0x2c) == *piVar6) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar29 + -0x2c) == *piVar6)" ( (binary_expression "*(int *)(puVar29 + -0x2c) == *piVar6" (pointer_expression "*(int *)(puVar29 + -0x2c)" * (cast_expression "(int *)(puVar29 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x2c)" ( (binary_expression "puVar29 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7b70)" * (cast_expression "(code **)(pcVar39 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7b70)" ( (binary_expression "pcVar39 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = 0x3153c;" (assignment_expression "uVar44 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar39 + 0x6db00;" (assignment_expression "pcVar38 = pcVar39 + 0x6db00" identifier = (binary_expression "pcVar39 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar41 = puVar3 + -0x38;" (assignment_expression "puVar41 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(mp_srcptr *)(puVar3 + -0x10) = pmVar31;" (assignment_expression "*(mp_srcptr *)(puVar3 + -0x10) = pmVar31" (pointer_expression "*(mp_srcptr *)(puVar3 + -0x10)" * (cast_expression "(mp_srcptr *)(puVar3 + -0x10)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x10)" ( (binary_expression "puVar3 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar39 + 0x66000);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x66000)" * (cast_expression "(int **)(pcVar39 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x66000)" ( (binary_expression "pcVar39 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar29 + -0xa0" (pointer_expression "*(undefined1 **)(puVar3 + -8)" * (cast_expression "(undefined1 **)(puVar3 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -8)" ( (binary_expression "puVar3 + -8" identifier + number_literal) )))) = (binary_expression "puVar29 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x14)" ( (binary_expression "puVar3 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar3 + -0x18) = tp;" (assignment_expression "*(mp_ptr *)(puVar3 + -0x18) = tp" (pointer_expression "*(mp_ptr *)(puVar3 + -0x18)" * (cast_expression "(mp_ptr *)(puVar3 + -0x18)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18)" ( (binary_expression "puVar3 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar44" (pointer_expression "*(undefined4 *)(puVar3 + -4)" * (cast_expression "(undefined4 *)(puVar3 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -4)" ( (binary_expression "puVar3 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0xc)" ( (binary_expression "puVar3 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar38;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar38" (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar3 + -0x1c) = *piVar6;" (assignment_expression "*(int *)(puVar3 + -0x1c) = *piVar6" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar46 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar46 = 1;\n    iVar13 = 0;\n    uVar18 = 0;\n    ptVar35 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);\n    if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar20" (cast_expression "(Elf32_Ehdr *)&DAT_00000004" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier)) < identifier) )) (compound_statement "{\n    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar46 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar46 = 1;\n    iVar13 = 0;\n    uVar18 = 0;\n    ptVar35 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);\n    if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }" { (if_statement "if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }" if (parenthesized_expression "((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1))" ( (binary_expression "(int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (cast_expression "(int)ptVar16->next" ( (type_descriptor "int" primitive_type) ) (field_expression "ptVar16->next" identifier -> field_identifier)) < (cast_expression "(int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1" (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6)" (parenthesized_expression "((uint)pEVar20 >> 5)" ( (binary_expression "(uint)pEVar20 >> 5" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar20 >> 6)" ( (binary_expression "(uint)pEVar20 >> 6" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))();" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar39 + 0x6607c)" * (pointer_expression "*(code **)(pcVar39 + 0x6607c)" * (cast_expression "(code **)(pcVar39 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6607c)" ( (binary_expression "pcVar39 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }" else (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)ptVar16[1].next" identifier = (cast_expression "(Elf32_Ehdr *)ptVar16[1].next" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar16[1].next" (subscript_expression "ptVar16[1]" identifier [ number_literal ]) . field_identifier))) ;) }))) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" identifier = (call_expression "(**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar38 + -0x7efc)" * (pointer_expression "*(code **)(pcVar38 + -0x7efc)" * (cast_expression "(code **)(pcVar38 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7efc)" ( (binary_expression "pcVar38 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar32,pEVar20)" ( identifier , identifier )))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar38 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar38 + -0x7c6c)" * (cast_expression "(int *)(pcVar38 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7c6c)" ( (binary_expression "pcVar38 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar18 = 8;" (assignment_expression "uVar18 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    } while (pEVar30 < pEVar20);" do (compound_statement "{\n      uVar46 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar46 - 1;\n    }" { (expression_statement "uVar46 = uVar18;" (assignment_expression "uVar46 = uVar18" identifier = identifier) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" identifier = (binary_expression "puVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar46 - 1;" (assignment_expression "uVar18 = uVar46 - 1" identifier = (binary_expression "uVar46 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar30 < pEVar20)" ( (binary_expression "pEVar30 < pEVar20" identifier < identifier) )) ;) (if_statement "if (uVar46 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar46 == 0)" ( (binary_expression "uVar46 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4;" (assignment_expression "uVar18 = ((iVar13 + 1U) / uVar46 + 1) * 4" identifier = (binary_expression "((iVar13 + 1U) / uVar46 + 1) * 4" (parenthesized_expression "((iVar13 + 1U) / uVar46 + 1)" ( (binary_expression "(iVar13 + 1U) / uVar46 + 1" (binary_expression "(iVar13 + 1U) / uVar46" (parenthesized_expression "(iVar13 + 1U)" ( (binary_expression "iVar13 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar3 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar3 + -0x20)" * (cast_expression "(undefined4 *)(puVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 < 0x7f01) {\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar13 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar13 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }" { (expression_statement "iVar13 = -(uVar18 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar18 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar18 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar18 + 7 & 0xfffffff8)" ( (binary_expression "uVar18 + 7 & 0xfffffff8" (binary_expression "uVar18 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar41 = puVar3 + iVar13 + -0x38;" (assignment_expression "puVar41 = puVar3 + iVar13 + -0x38" identifier = (binary_expression "puVar3 + iVar13 + -0x38" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + -0x28)" ( (binary_expression "puVar3 + iVar13 + -0x28" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar38 + -0x7d50)" * (pointer_expression "*(code **)(pcVar38 + -0x7d50)" * (cast_expression "(code **)(pcVar38 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7d50)" ( (binary_expression "pcVar38 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar46 = 1;" (assignment_expression "uVar46 = 1" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "ptVar35 = (tmp_reentrant_t *)0x6;" (assignment_expression "ptVar35 = (tmp_reentrant_t *)0x6" identifier = (cast_expression "(tmp_reentrant_t *)0x6" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    } while (bVar1);" do (compound_statement "{\n      uVar47 = uVar18 + 1;\n      iVar28 = iVar13;\n      ptVar37 = ptVar35;\n      if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }\n      uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar46 & 1);\n      iVar13 = iVar28;\n      uVar18 = uVar47;\n      ptVar35 = ptVar37;\n    }" { (expression_statement "uVar47 = uVar18 + 1;" (assignment_expression "uVar47 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = iVar13;" (assignment_expression "iVar28 = iVar13" identifier = identifier) ;) (expression_statement "ptVar37 = ptVar35;" (assignment_expression "ptVar37 = ptVar35" identifier = identifier) ;) (if_statement "if ((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }" if (parenthesized_expression "((uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0)" ( (binary_expression "(uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0" (parenthesized_expression "(uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1))" ( (binary_expression "uVar46 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" * (cast_expression "(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4 + -1" (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n        ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);\n        if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }\n      }" { (expression_statement "ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3);" (assignment_expression "ptVar37 = (tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3)" identifier = (cast_expression "(tmp_reentrant_t *)((uVar47 & 1) + 1 + uVar47 * 3)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar47 & 1) + 1 + uVar47 * 3)" ( (binary_expression "(uVar47 & 1) + 1 + uVar47 * 3" (binary_expression "(uVar47 & 1) + 1" (parenthesized_expression "(uVar47 & 1)" ( (binary_expression "uVar47 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar47 * 3" identifier * number_literal)) )))) ;) (if_statement "if ((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }\n        else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }" if (parenthesized_expression "((int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0)" ( (binary_expression "(int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20) == 0" (cast_expression "(int)(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20)" ( (binary_expression "ZEXT48(ptVar35) * ZEXT48(pEVar20) >> 0x20" (binary_expression "ZEXT48(ptVar35) * ZEXT48(pEVar20)" (call_expression "ZEXT48(ptVar35)" identifier (argument_list "(ptVar35)" ( identifier ))) * (call_expression "ZEXT48(pEVar20)" identifier (argument_list "(pEVar20)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);\n        }" { (expression_statement "ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37);" (assignment_expression "ptVar37 = (tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37)" identifier = (cast_expression "(tmp_reentrant_t *)((int)ptVar35 * (int)ptVar37)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar35 * (int)ptVar37)" ( (binary_expression "(int)ptVar35 * (int)ptVar37" (cast_expression "(int)ptVar35" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)ptVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }" else (compound_statement "{\n          iVar28 = iVar13 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;\n        }" { (expression_statement "iVar28 = iVar13 + 1;" (assignment_expression "iVar28 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35;" (assignment_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1) = ptVar35" (pointer_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" * (cast_expression "(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" ( (binary_expression "pEVar30->e_ident_magic_str + iVar13 * 4 + -1" (binary_expression "pEVar30->e_ident_magic_str + iVar13 * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar13 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f);" (assignment_expression "uVar46 = uVar46 * 2 - ((int)uVar46 >> 0x1f)" identifier = (binary_expression "uVar46 * 2 - ((int)uVar46 >> 0x1f)" (binary_expression "uVar46 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar46 >> 0x1f)" ( (binary_expression "(int)uVar46 >> 0x1f" (cast_expression "(int)uVar46" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar20[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shentsize + 1" (cast_expression "(int)&pEVar20[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shentsize" & (field_expression "pEVar20[-1].e_shentsize" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar15 = iVar15 + (uVar46 & 1);" (assignment_expression "iVar15 = iVar15 + (uVar46 & 1)" identifier = (binary_expression "iVar15 + (uVar46 & 1)" identifier + (parenthesized_expression "(uVar46 & 1)" ( (binary_expression "uVar46 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar13 = iVar28;" (assignment_expression "iVar13 = iVar28" identifier = identifier) ;) (expression_statement "uVar18 = uVar47;" (assignment_expression "uVar18 = uVar47" identifier = identifier) ;) (expression_statement "ptVar35 = ptVar37;" (assignment_expression "ptVar35 = ptVar37" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar28 == 0) {\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n      (ptVar16[1].next)->next = ptVar37;\n      ptVar16->size = 1;\n    }" { (expression_statement "(ptVar16[1].next)->next = ptVar37;" (assignment_expression "(ptVar16[1].next)->next = ptVar37" (field_expression "(ptVar16[1].next)->next" (parenthesized_expression "(ptVar16[1].next)" ( (field_expression "ptVar16[1].next" (subscript_expression "ptVar16[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "ptVar16->size = 1;" (assignment_expression "ptVar16->size = 1" (field_expression "ptVar16->size" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar39 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;\n      (*pcVar39)(ptVar16,pEVar30,iVar28 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar39 = *(code **)(pcVar38 + -0x7dbc);" (assignment_expression "pcVar39 = *(code **)(pcVar38 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7dbc)" * (cast_expression "(code **)(pcVar38 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7dbc)" ( (binary_expression "pcVar38 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37;" (assignment_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1) = ptVar37" (pointer_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1)" * (cast_expression "(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar28 * 4 + -1)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + iVar28 * 4 + -1)" ( (binary_expression "pEVar30->e_ident_magic_str + iVar28 * 4 + -1" (binary_expression "pEVar30->e_ident_magic_str + iVar28 * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar28 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar39)(ptVar16,pEVar30,iVar28 + 1);" (call_expression "(*pcVar39)(ptVar16,pEVar30,iVar28 + 1)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(ptVar16,pEVar30,iVar28 + 1)" ( identifier , identifier , (binary_expression "iVar28 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20);" (assignment_expression "ptVar35 = *(tmp_reentrant_t **)(puVar3 + -0x20)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar3 + -0x20)" * (cast_expression "(tmp_reentrant_t **)(puVar3 + -0x20)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (ptVar35 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(ptVar35 != (tmp_reentrant_t *)0x0)" ( (binary_expression "ptVar35 != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar38 + -0x7a2c))();" (call_expression "(**(code **)(pcVar38 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar38 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar38 + -0x7a2c)" * (cast_expression "(code **)(pcVar38 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7a2c)" ( (binary_expression "pcVar38 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar35 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar27;\n    puVar41 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar39 + 0x65b2c)" (binary_expression "(int)pEVar20 * 4" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar39 + 0x65b2c)" * (cast_expression "(int *)(pcVar39 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x65b2c)" ( (binary_expression "pcVar39 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "(ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num;" (assignment_expression "(ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar27->e_ident_magic_num" (field_expression "(ptVar16[1].next)->next" (parenthesized_expression "(ptVar16[1].next)" ( (field_expression "ptVar16[1].next" (subscript_expression "ptVar16[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) = (pointer_expression "*(tmp_reentrant_t **)&pEVar27->e_ident_magic_num" * (cast_expression "(tmp_reentrant_t **)&pEVar27->e_ident_magic_num" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar27->e_ident_magic_num" & (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "ptVar16->size = 1;" (assignment_expression "ptVar16->size = 1" (field_expression "ptVar16->size" identifier -> field_identifier) = number_literal) ;) (expression_statement "ptVar35 = ptVar16;" (assignment_expression "ptVar35 = ptVar16" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar20;" (assignment_expression "pEVar30 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar27;" (assignment_expression "pEVar20 = pEVar27" identifier = identifier) ;) (expression_statement "puVar41 = puVar3 + -0x38;" (assignment_expression "puVar41 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar3 + -0x1c) == *piVar6)" ( (binary_expression "*(int *)(puVar3 + -0x1c) == *piVar6" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar38 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(pcVar38 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7b70)" * (cast_expression "(code **)(pcVar38 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7b70)" ( (binary_expression "pcVar38 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = __gmpz_probab_prime_p;" (assignment_expression "pcVar43 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(pcVar39 + 0x659a8);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x659a8)" * (cast_expression "(code **)(pcVar39 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x659a8)" ( (binary_expression "pcVar39 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;" (assignment_expression "*(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16" (pointer_expression "*(tmp_reentrant_t **)(puVar41 + -0x24)" * (cast_expression "(tmp_reentrant_t **)(puVar41 + -0x24)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x24)" ( (binary_expression "puVar41 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar41 + -0x20) = piVar6;" (assignment_expression "*(int **)(puVar41 + -0x20) = piVar6" (pointer_expression "*(int **)(puVar41 + -0x20)" * (cast_expression "(int **)(puVar41 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x20)" ( (binary_expression "puVar41 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar39 + 0x65da0);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x65da0)" * (cast_expression "(int **)(pcVar39 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x65da0)" ( (binary_expression "pcVar39 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x18)" ( (binary_expression "puVar41 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x1c)" ( (binary_expression "puVar41 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0;" (assignment_expression "*(code **)(puVar41 + -0x90) = pcVar39 + 0x6d8a0" (pointer_expression "*(code **)(puVar41 + -0x90)" * (cast_expression "(code **)(puVar41 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar39 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x10)" ( (binary_expression "puVar41 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_size_t *)(puVar41 + -0x14) = an;" (assignment_expression "*(mp_size_t *)(puVar41 + -0x14) = an" (pointer_expression "*(mp_size_t *)(puVar41 + -0x14)" * (cast_expression "(mp_size_t *)(puVar41 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x14)" ( (binary_expression "puVar41 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x28)" ( (binary_expression "puVar41 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar41 + -4) = pcVar43;" (assignment_expression "*(code **)(puVar41 + -4) = pcVar43" (pointer_expression "*(code **)(puVar41 + -4)" * (cast_expression "(code **)(puVar41 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -4)" ( (binary_expression "puVar41 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar41 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar41 + -8)" * (cast_expression "(undefined1 **)(puVar41 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -8)" ( (binary_expression "puVar41 + -8" identifier + number_literal) )))) = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(gmp_pi1_t **)(puVar41 + -0xc) = dinv;" (assignment_expression "*(gmp_pi1_t **)(puVar41 + -0xc) = dinv" (pointer_expression "*(gmp_pi1_t **)(puVar41 + -0xc)" * (cast_expression "(gmp_pi1_t **)(puVar41 + -0xc)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xc)" ( (binary_expression "puVar41 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar41 + -0x2c) = *piVar6;" (assignment_expression "*(int *)(puVar41 + -0x2c) = *piVar6" (pointer_expression "*(int *)(puVar41 + -0x2c)" * (cast_expression "(int *)(puVar41 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x2c)" ( (binary_expression "puVar41 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar13 = (*pcVar38)();" (assignment_expression "iVar13 = (*pcVar38)()" identifier = (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "ptVar37 = ptVar35[1].next;" (assignment_expression "ptVar37 = ptVar35[1].next" identifier = (field_expression "ptVar35[1].next" (subscript_expression "ptVar35[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar36 = (Elf32_Ehdr *)ptVar35->size;" (assignment_expression "pEVar36 = (Elf32_Ehdr *)ptVar35->size" identifier = (cast_expression "(Elf32_Ehdr *)ptVar35->size" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar35->size" identifier -> field_identifier))) ;) (expression_statement "ptVar16 = ptVar37->next;" (assignment_expression "ptVar16 = ptVar37->next" identifier = (field_expression "ptVar37->next" identifier -> field_identifier)) ;) (if_statement "if (iVar13 < 1) {\n    pEVar34 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;\n    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;\n  }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar34 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;\n    ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;\n  }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35);" (assignment_expression "iVar13 = (**(code **)(iVar15 + -0x7ab8))(ptVar35)" identifier = (call_expression "(**(code **)(iVar15 + -0x7ab8))(ptVar35)" (parenthesized_expression "(**(code **)(iVar15 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar15 + -0x7ab8)" * (pointer_expression "*(code **)(iVar15 + -0x7ab8)" * (cast_expression "(code **)(iVar15 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7ab8)" ( (binary_expression "iVar15 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(ptVar35)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 1) {\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n      if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }" { (if_statement "if ((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }" if (parenthesized_expression "((pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16))" ( (binary_expression "(pEVar36 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)" (parenthesized_expression "(pEVar36 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar36 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)" ( (comma_expression "uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16" (assignment_expression "uVar18 = (uint)ptVar16 & 1" identifier = (binary_expression "(uint)ptVar16 & 1" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) , (binary_expression "(tmp_reentrant_t *)0x2 < ptVar16" (cast_expression "(tmp_reentrant_t *)0x2" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ))) )) (compound_statement "{\n        uVar46 = 3;\n        while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }\n      }" { (expression_statement "uVar46 = 3;" (assignment_expression "uVar46 = 3" identifier = number_literal) ;) (while_statement "while (uVar18 != 0) {\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }" while (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar46 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar46;\n          if ((uint)ptVar16 / uVar46 < uVar46) break;\n          uVar46 = uVar46 + 2;\n        }" { (if_statement "if (uVar46 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar46 == 0)" ( (binary_expression "uVar46 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar18 = (uint)ptVar16 % uVar46;" (assignment_expression "uVar18 = (uint)ptVar16 % uVar46" identifier = (binary_expression "(uint)ptVar16 % uVar46" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ;) (if_statement "if ((uint)ptVar16 / uVar46 < uVar46) break;" if (parenthesized_expression "((uint)ptVar16 / uVar46 < uVar46)" ( (binary_expression "(uint)ptVar16 / uVar46 < uVar46" (binary_expression "(uint)ptVar16 / uVar46" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) / identifier) < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar46 = uVar46 + 2;" (assignment_expression "uVar46 = uVar46 + 2" identifier = (binary_expression "uVar46 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar36 = (Elf32_Ehdr *)-(int)pEVar36;" (assignment_expression "pEVar36 = (Elf32_Ehdr *)-(int)pEVar36" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar36" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar36" - (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37;" (assignment_expression "*(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar37" (pointer_expression "*(tmp_reentrant_t **)(puVar41 + -0x6c)" * (cast_expression "(tmp_reentrant_t **)(puVar41 + -0x6c)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x6c)" ( (binary_expression "puVar41 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74);" (assignment_expression "ptVar35 = (tmp_reentrant_t *)(puVar41 + -0x74)" identifier = (cast_expression "(tmp_reentrant_t *)(puVar41 + -0x74)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x74)" ( (binary_expression "puVar41 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x70)" ( (binary_expression "puVar41 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar34 = pEVar36;\n    if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }\n  }" if (parenthesized_expression "((pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0))" ( (binary_expression "(pEVar36 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)" (parenthesized_expression "(pEVar36 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar36 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar18 = (uint)ptVar16 & 1, uVar18 != 0)" ( (comma_expression "uVar18 = (uint)ptVar16 & 1, uVar18 != 0" (assignment_expression "uVar18 = (uint)ptVar16 & 1" identifier = (binary_expression "(uint)ptVar16 & 1" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) , (binary_expression "uVar18 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    pEVar34 = pEVar36;\n    if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }\n  }" { (expression_statement "pEVar34 = pEVar36;" (assignment_expression "pEVar34 = pEVar36" identifier = identifier) ;) (if_statement "if ((int)pEVar36 < 10) {\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }\n    else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar36 < 10)" ( (binary_expression "(int)pEVar36 < 10" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }" { (expression_statement "uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar46 = (**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar15 + -0x7c24))(ptVar37,pEVar36,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c24))" ( (pointer_expression "**(code **)(iVar15 + -0x7c24)" * (pointer_expression "*(code **)(iVar15 + -0x7c24)" * (cast_expression "(code **)(iVar15 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c24)" ( (binary_expression "iVar15 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(ptVar37,pEVar36,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }" else (compound_statement "{\n      uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x90);\n    }" { (expression_statement "uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797);" (assignment_expression "uVar46 = (**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(ptVar37,pEVar36,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar15 + -0x7b80))" ( (pointer_expression "**(code **)(iVar15 + -0x7b80)" * (pointer_expression "*(code **)(iVar15 + -0x7b80)" * (cast_expression "(code **)(iVar15 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b80)" ( (binary_expression "iVar15 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(ptVar37,pEVar36,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)) {\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }" if (parenthesized_expression "((((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))) &&\n       (uVar46 != (uVar46 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))) &&\n        ((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd))))" ( (binary_expression "(((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)) &&\n         ((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7))" ( (binary_expression "((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)) &&\n          (uVar46 != (uVar46 / 7) * 7)" (parenthesized_expression "((uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5))" ( (binary_expression "(uVar46 != (uVar46 / 3) * 3) && (uVar46 != (uVar46 / 5) * 5)" (parenthesized_expression "(uVar46 != (uVar46 / 3) * 3)" ( (binary_expression "uVar46 != (uVar46 / 3) * 3" identifier != (binary_expression "(uVar46 / 3) * 3" (parenthesized_expression "(uVar46 / 3)" ( (binary_expression "uVar46 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar46 != (uVar46 / 5) * 5)" ( (binary_expression "uVar46 != (uVar46 / 5) * 5" identifier != (binary_expression "(uVar46 / 5) * 5" (parenthesized_expression "(uVar46 / 5)" ( (binary_expression "uVar46 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar46 != (uVar46 / 7) * 7)" ( (binary_expression "uVar46 != (uVar46 / 7) * 7" identifier != (binary_expression "(uVar46 / 7) * 7" (parenthesized_expression "(uVar46 / 7)" ( (binary_expression "uVar46 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd))" ( (binary_expression "uVar46 != (uVar46 / 0xb) * 0xb && (uVar46 != (uVar46 / 0xd) * 0xd)" (binary_expression "uVar46 != (uVar46 / 0xb) * 0xb" identifier != (binary_expression "(uVar46 / 0xb) * 0xb" (parenthesized_expression "(uVar46 / 0xb)" ( (binary_expression "uVar46 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar46 != (uVar46 / 0xd) * 0xd)" ( (binary_expression "uVar46 != (uVar46 / 0xd) * 0xd" identifier != (binary_expression "(uVar46 / 0xd) * 0xd" (parenthesized_expression "(uVar46 / 0xd)" ( (binary_expression "uVar46 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17))))" ( (binary_expression "uVar46 != (uVar46 / 0x11) * 0x11 &&\n         ((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))" (binary_expression "uVar46 != (uVar46 / 0x11) * 0x11" identifier != (binary_expression "(uVar46 / 0x11) * 0x11" (parenthesized_expression "(uVar46 / 0x11)" ( (binary_expression "uVar46 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17))" ( (binary_expression "uVar46 != (uVar46 / 0x13) * 0x13 && (uVar46 != (uVar46 / 0x17) * 0x17)" (binary_expression "uVar46 != (uVar46 / 0x13) * 0x13" identifier != (binary_expression "(uVar46 / 0x13) * 0x13" (parenthesized_expression "(uVar46 / 0x13)" ( (binary_expression "uVar46 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar46 != (uVar46 / 0x17) * 0x17)" ( (binary_expression "uVar46 != (uVar46 / 0x17) * 0x17" identifier != (binary_expression "(uVar46 / 0x17) * 0x17" (parenthesized_expression "(uVar46 / 0x17)" ( (binary_expression "uVar46 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar46 != (uVar46 / 0x1d) * 0x1d)" ( (binary_expression "uVar46 != (uVar46 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar46 / 0x1d) * 0x1d" (parenthesized_expression "(uVar46 / 0x1d)" ( (binary_expression "uVar46 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);\n      iVar13 = *(int *)(puVar41 + -0x90);\n      if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);\n      iVar15 = *(int *)(puVar41 + -0x90);\n      pEVar34 = pEVar30;\n    }" { (expression_statement "uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2);" (assignment_expression "uVar46 = (**(code **)(iVar15 + -0x7f14))(ptVar35,2)" identifier = (call_expression "(**(code **)(iVar15 + -0x7f14))(ptVar35,2)" (parenthesized_expression "(**(code **)(iVar15 + -0x7f14))" ( (pointer_expression "**(code **)(iVar15 + -0x7f14)" * (pointer_expression "*(code **)(iVar15 + -0x7f14)" * (cast_expression "(code **)(iVar15 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7f14)" ( (binary_expression "iVar15 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(ptVar35,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar46) {\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar46)" ( (binary_expression "0x1f < uVar46" number_literal < identifier) )) (compound_statement "{\n        iVar28 = 0;\n        puVar29 = puVar41 + -0x68;\n        uVar47 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar11 = 3;\n        do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar41 + -0x68;" (assignment_expression "puVar29 = puVar41 + -0x68" identifier = (binary_expression "puVar41 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar47 = 0x1f;" (assignment_expression "uVar47 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar11 = 3;" statement_identifier : (expression_statement "uVar11 = 3;" (assignment_expression "uVar11 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        } while (uVar45 != 0);" do (compound_statement "{\n          if (uVar11 == 0) {\n            trap(7);\n          }\n          uVar45 = uVar47 % uVar11;\n          if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar11 = uVar11 + 2;\n          iVar42 = iVar15;\n        }" { (if_statement "if (uVar11 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar45 = uVar47 % uVar11;" (assignment_expression "uVar45 = uVar47 % uVar11" identifier = (binary_expression "uVar47 % uVar11" identifier % identifier)) ;) (if_statement "if (uVar47 / uVar11 < uVar11) {\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar47 / uVar11 < uVar11)" ( (binary_expression "uVar47 / uVar11 < uVar11" (binary_expression "uVar47 / uVar11" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar41 + -0x7c) = puVar29;\n            *(int *)(puVar41 + -0x80) = iVar28;\n            *(uint *)(puVar41 + -0x84) = uVar46;\n            if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }\n            puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0) {\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0)" ( (binary_expression "iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20) == 0" (binary_expression "iVar28 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20)" (binary_expression "iVar28 * uVar18" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar47 >> 0x20" (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar47" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar42 = iVar15 + 1;\n              uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar42 = iVar15 + 1;" (assignment_expression "iVar42 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar47)" identifier = (call_expression "(uint)((ulonglong)uVar18 * (ulonglong)uVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar18 * (ulonglong)uVar47)" ( (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar47" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar41 + -0x7c) = puVar29;" (assignment_expression "*(undefined1 **)(puVar41 + -0x7c) = puVar29" (pointer_expression "*(undefined1 **)(puVar41 + -0x7c)" * (cast_expression "(undefined1 **)(puVar41 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar41 + -0x80) = iVar28;" (assignment_expression "*(int *)(puVar41 + -0x80) = iVar28" (pointer_expression "*(int *)(puVar41 + -0x80)" * (cast_expression "(int *)(puVar41 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x80)" ( (binary_expression "puVar41 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar41 + -0x84) = uVar46;" (assignment_expression "*(uint *)(puVar41 + -0x84) = uVar46" (pointer_expression "*(uint *)(puVar41 + -0x84)" * (cast_expression "(uint *)(puVar41 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x84)" ( (binary_expression "puVar41 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar36 < 10) {\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }\n            else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar36 < 10)" ( (binary_expression "(int)pEVar36 < 10" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n            }" { (expression_statement "uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0);" (assignment_expression "uVar18 = (**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c68))(ptVar37,pEVar36,uVar18,0)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c68))" ( (pointer_expression "**(code **)(iVar13 + -0x7c68)" * (pointer_expression "*(code **)(iVar13 + -0x7c68)" * (cast_expression "(code **)(iVar13 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c68)" ( (binary_expression "iVar13 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(ptVar37,pEVar36,uVar18,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar46 = *(uint *)(puVar41 + -0x84);" (assignment_expression "uVar46 = *(uint *)(puVar41 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar41 + -0x84)" * (cast_expression "(uint *)(puVar41 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x84)" ( (binary_expression "puVar41 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar41 + -0x80);" (assignment_expression "iVar28 = *(int *)(puVar41 + -0x80)" identifier = (pointer_expression "*(int *)(puVar41 + -0x80)" * (cast_expression "(int *)(puVar41 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x80)" ( (binary_expression "puVar41 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar29 = *(undefined1 **)(puVar41 + -0x7c);" (assignment_expression "puVar29 = *(undefined1 **)(puVar41 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar41 + -0x7c)" * (cast_expression "(undefined1 **)(puVar41 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }" else (compound_statement "{\n              uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);\n              iVar13 = *(int *)(puVar41 + -0x90);\n              puVar29 = *(undefined1 **)(puVar41 + -0x7c);\n              iVar28 = *(int *)(puVar41 + -0x80);\n              uVar46 = *(uint *)(puVar41 + -0x84);\n            }" { (expression_statement "uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18);" (assignment_expression "uVar18 = (**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(ptVar37,pEVar36,uVar18)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(ptVar37,pEVar36,uVar18)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar29 = *(undefined1 **)(puVar41 + -0x7c);" (assignment_expression "puVar29 = *(undefined1 **)(puVar41 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar41 + -0x7c)" * (cast_expression "(undefined1 **)(puVar41 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar41 + -0x80);" (assignment_expression "iVar28 = *(int *)(puVar41 + -0x80)" identifier = (pointer_expression "*(int *)(puVar41 + -0x80)" * (cast_expression "(int *)(puVar41 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x80)" ( (binary_expression "puVar41 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar46 = *(uint *)(puVar41 + -0x84);" (assignment_expression "uVar46 = *(uint *)(puVar41 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar41 + -0x84)" * (cast_expression "(uint *)(puVar41 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x84)" ( (binary_expression "puVar41 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4);" (assignment_expression "puVar14 = (uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar29 + (iVar15 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + (iVar15 + 0x3fffffff) * 4)" ( (binary_expression "puVar29 + (iVar15 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar15 + 0x3fffffff) * 4" (parenthesized_expression "(iVar15 + 0x3fffffff)" ( (binary_expression "iVar15 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar11 = uVar11 + 2;" (assignment_expression "uVar11 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "iVar42 = iVar15;" (assignment_expression "iVar42 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar45 != 0)" ( (binary_expression "uVar45 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      (**(code **)(iVar13 + -0x7d48))(ptVar35);" statement_identifier : (expression_statement "(**(code **)(iVar13 + -0x7d48))(ptVar35);" (call_expression "(**(code **)(iVar13 + -0x7d48))(ptVar35)" (parenthesized_expression "(**(code **)(iVar13 + -0x7d48))" ( (pointer_expression "**(code **)(iVar13 + -0x7d48)" * (pointer_expression "*(code **)(iVar13 + -0x7d48)" * (cast_expression "(code **)(iVar13 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7d48)" ( (binary_expression "iVar13 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(ptVar35)" ( identifier ))) ;)) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar34 = pEVar30;" (assignment_expression "pEVar34 = pEVar30" identifier = identifier) ;) })) })) (labeled_statement "LAB_00031824:\n  iVar13 = *(int *)(puVar41 + -0x2c);" statement_identifier : (expression_statement "iVar13 = *(int *)(puVar41 + -0x2c);" (assignment_expression "iVar13 = *(int *)(puVar41 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar41 + -0x2c)" * (cast_expression "(int *)(puVar41 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x2c)" ( (binary_expression "puVar41 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar13 == *piVar6) {\n    return;\n  }" if (parenthesized_expression "(iVar13 == *piVar6)" ( (binary_expression "iVar13 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00031c58:\n  pcVar39 = *(code **)(iVar15 + -0x7b70);" statement_identifier : (expression_statement "pcVar39 = *(code **)(iVar15 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(iVar15 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar15 + -0x7b70)" * (cast_expression "(code **)(iVar15 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b70)" ( (binary_expression "iVar15 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar44 = 0x31c64;" (assignment_expression "uVar44 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar39 + 0x6d3d0;" (assignment_expression "pcVar38 = pcVar39 + 0x6d3d0" identifier = (binary_expression "pcVar39 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar12 = *(char **)(pcVar39 + 0x65518);" (assignment_expression "pcVar12 = *(char **)(pcVar39 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar39 + 0x65518)" * (cast_expression "(char **)(pcVar39 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x65518)" ( (binary_expression "pcVar39 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar41 + -0xa8) = piVar6;" (assignment_expression "*(int **)(puVar41 + -0xa8) = piVar6" (pointer_expression "*(int **)(puVar41 + -0xa8)" * (cast_expression "(int **)(puVar41 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xa8)" ( (binary_expression "puVar41 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0xac) = pEVar36" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xac)" ( (binary_expression "puVar41 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar41 + -0xb8) = pcVar38;" (assignment_expression "*(code **)(puVar41 + -0xb8) = pcVar38" (pointer_expression "*(code **)(puVar41 + -0xb8)" * (cast_expression "(code **)(puVar41 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xb8)" ( (binary_expression "puVar41 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar41 + -0xa4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar41 + -0xa4) = uVar44" (pointer_expression "*(undefined4 *)(puVar41 + -0xa4)" * (cast_expression "(undefined4 *)(puVar41 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0xa4)" ( (binary_expression "puVar41 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar12 == '\0') {\n    pcVar38 = *(code **)(pcVar39 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);\n    *pcVar12 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar38 = *(code **)(pcVar39 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);\n    *pcVar12 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb8);\n  }" { (expression_statement "pcVar38 = *(code **)(pcVar39 + 0x65990);" (assignment_expression "pcVar38 = *(code **)(pcVar39 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x65990)" * (cast_expression "(code **)(pcVar39 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x65990)" ( (binary_expression "pcVar39 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(pcVar39 + 0x6560c);" (assignment_expression "uVar44 = *(undefined4 *)(pcVar39 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar39 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar39 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x6560c)" ( (binary_expression "pcVar39 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar12 = '\x01';" (assignment_expression "*pcVar12 = '\x01'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar38)(uVar44);" (call_expression "(*pcVar38)(uVar44)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "pcVar38 = *(code **)(puVar41 + -0xb8);" (assignment_expression "pcVar38 = *(code **)(puVar41 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar41 + -0xb8)" * (cast_expression "(code **)(puVar41 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xb8)" ( (binary_expression "puVar41 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar36 = pEVar34;" (assignment_expression "pEVar36 = pEVar34" identifier = identifier) ;) (if_statement "if ((int)pEVar34 < 0) {\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;\n  }" if (parenthesized_expression "((int)pEVar34 < 0)" ( (binary_expression "(int)pEVar34 < 0" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;\n  }" { (expression_statement "pEVar36 = (Elf32_Ehdr *)-(int)pEVar34;" (assignment_expression "pEVar36 = (Elf32_Ehdr *)-(int)pEVar34" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar34" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar34" - (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "(**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5);" (call_expression "(**(code **)(pcVar38 + -0x7f7c))(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar38 + -0x7f7c)" * (cast_expression "(code **)(pcVar38 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7f7c)" ( (binary_expression "pcVar38 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar13,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar36 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar38 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar38 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7dc4)" ( (binary_expression "pcVar38 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar36 << 5" (cast_expression "(int)pEVar36" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (if_statement "if ((int)pEVar34 < 0) {\n    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);\n  }" if (parenthesized_expression "((int)pEVar34 < 0)" ( (binary_expression "(int)pEVar34 < 0" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    *(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);\n  }" { (expression_statement "*(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4);" (assignment_expression "*(int *)(iVar13 + 4) = -*(int *)(iVar13 + 4)" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar13 + 4)" - (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))))) ;) })) (return_statement "return;" return ;) (labeled_statement "LAB_00031bcc:\n  iVar15 = iVar15 + -1;" statement_identifier : (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar15 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar11 = *puVar14;" (assignment_expression "uVar11 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (uVar11 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar14 = puVar14 + -1;" (assignment_expression "puVar14 = puVar14 + -1" identifier = (binary_expression "puVar14 + -1" identifier + number_literal)) ;) (if_statement "if (uVar18 % uVar11 == 0) {\n    pEVar34 = pEVar36;\n    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 == 0) goto LAB_00031824;\n    pEVar34 = (Elf32_Ehdr *)0x81;\n    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar18 % uVar11 == 0)" ( (binary_expression "uVar18 % uVar11 == 0" (binary_expression "uVar18 % uVar11" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar34 = pEVar36;\n    iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);\n    iVar15 = *(int *)(puVar41 + -0x90);\n    if (iVar13 == 0) goto LAB_00031824;\n    pEVar34 = (Elf32_Ehdr *)0x81;\n    iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar34 = pEVar36;" (assignment_expression "pEVar34 = pEVar36" identifier = identifier) ;) (expression_statement "iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37);" (assignment_expression "iVar13 = (**(code **)(iVar13 + -0x7b80))(ptVar37)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(ptVar37)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(ptVar37)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x90)" identifier = (pointer_expression "*(int *)(puVar41 + -0x90)" * (cast_expression "(int *)(puVar41 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x90)" ( (binary_expression "puVar41 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar34 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar13 = *(int *)(iVar15 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar15 + -0x7c20))(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c20))" ( (pointer_expression "**(code **)(iVar15 + -0x7c20)" * (pointer_expression "*(code **)(iVar15 + -0x7c20)" * (cast_expression "(code **)(iVar15 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c20)" ( (binary_expression "iVar15 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar13,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar42 = 1;" statement_identifier : (expression_statement "iVar42 = 1;" (assignment_expression "iVar42 = 1" identifier = number_literal) ;)) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar47;" (assignment_expression "uVar18 = uVar47" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;" statement_identifier : (expression_statement "*(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47;" (assignment_expression "*(uint *)(puVar41 + iVar15 * 4 + -0x68) = uVar47" (pointer_expression "*(uint *)(puVar41 + iVar15 * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + iVar15 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + iVar15 * 4 + -0x68)" ( (binary_expression "puVar41 + iVar15 * 4 + -0x68" (binary_expression "puVar41 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar11 = uVar47 + 2;" statement_identifier : (expression_statement "uVar11 = uVar47 + 2;" (assignment_expression "uVar11 = uVar47 + 2" identifier = (binary_expression "uVar47 + 2" identifier + number_literal)) ;)) (expression_statement "iVar28 = (uint)(uVar11 < uVar47) + iVar28;" (assignment_expression "iVar28 = (uint)(uVar11 < uVar47) + iVar28" identifier = (binary_expression "(uint)(uVar11 < uVar47) + iVar28" (call_expression "(uint)(uVar11 < uVar47)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar47)" ( (binary_expression "uVar11 < uVar47" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar47 = uVar11;" (assignment_expression "uVar47 = uVar11" identifier = identifier) ;) (expression_statement "iVar15 = iVar42;" (assignment_expression "iVar15 = iVar42" identifier = identifier) ;) (if_statement "if (uVar46 <= uVar11) goto LAB_00031a64;" if (parenthesized_expression "(uVar46 <= uVar11)" ( (binary_expression "uVar46 <= uVar11" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit "int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" (function_definition "int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" identifier (parameter_list "(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" ( (parameter_declaration "Elf32_Ehdr *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "Elf32_Ehdr *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Elf32_Ehdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "Elf32_Ehdr *pEVar6;" type_identifier (pointer_declarator "*pEVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "Elf32_Ehdr *pEVar12;" type_identifier (pointer_declarator "*pEVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "Elf32_Ehdr *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "uint *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "undefined1 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "code *pcVar41;" type_identifier (pointer_declarator "*pcVar41" * identifier) ;) (declaration "code *pcVar42;" type_identifier (pointer_declarator "*pcVar42" * identifier) ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "uint uVar44;" type_identifier identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "undefined1 auStack_58 [24];" type_identifier (array_declarator "auStack_58 [24]" identifier [ number_literal ]) ;) (declaration "int *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540" identifier = (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_00097540" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar30 = auStack_58;" (assignment_expression "puVar30 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_3 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 4)" ( (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "local_30 = (int *)0x0;" (assignment_expression "local_30 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" if (parenthesized_expression "(pEVar34 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar34 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }" { (expression_statement "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar34->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar34->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar34->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar30 = auStack_58 + iVar13;" (assignment_expression "puVar30 = auStack_58 + iVar13" identifier = (binary_expression "auStack_58 + iVar13" identifier + identifier)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + iVar13)" ( (binary_expression "&stack0xffffffc0 + iVar13" (pointer_expression "&stack0xffffffc0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" else (compound_statement "{\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,pEVar34)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4" identifier = (binary_expression "(int)((int)param_3 + (1 - (int)param_5)) * 4" (cast_expression "(int)((int)param_3 + (1 - (int)param_5))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_3 + (1 - (int)param_5))" ( (binary_expression "(int)param_3 + (1 - (int)param_5)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)param_5)" ( (binary_expression "1 - (int)param_5" number_literal - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) * number_literal)) ;) (if_statement "if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" if (parenthesized_expression "(uVar19 < 0x7f01)" ( (binary_expression "uVar19 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }" { (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar30 + iVar13 + 0x18;" (assignment_expression "puVar3 = puVar30 + iVar13 + 0x18" identifier = (binary_expression "puVar30 + iVar13 + 0x18" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar30 = puVar30 + iVar13;" (assignment_expression "puVar30 = puVar30 + iVar13" identifier = (binary_expression "puVar30 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" else (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" { (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar27 = *param_2;" (assignment_expression "uVar27 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar34 = pEVar31;" (assignment_expression "pEVar34 = pEVar31" identifier = identifier) ;) }) (else_clause "else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" else (compound_statement "{\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" { (expression_statement "pEVar32 = pEVar31;" (assignment_expression "pEVar32 = pEVar31" identifier = identifier) ;) (expression_statement "puVar4 = param_2 + 1;" (assignment_expression "puVar4 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar32->e_ident_magic_str[0]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar32->e_ident_magic_str[1]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar32->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar27 = *puVar4;" (assignment_expression "uVar27 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar32->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar32->e_ident_class" & (field_expression "pEVar32->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );" (assignment_expression "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shentsize + 1" (cast_expression "(int)&pEVar34[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shentsize" & (field_expression "pEVar34[-1].e_shentsize" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar31->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar34->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar34->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar34->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar30 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar30 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar30 + 0x14)" * (cast_expression "(undefined1 **)(puVar30 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x14)" ( (binary_expression "puVar30 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;) (expression_statement "pEVar28 = param_5;" (assignment_expression "pEVar28 = param_5" identifier = identifier) ;) (expression_statement "FUN_00030430(pEVar31);" (call_expression "FUN_00030430(pEVar31)" identifier (argument_list "(pEVar31)" ( identifier ))) ;) (expression_statement "pEVar32 = param_5;" (assignment_expression "pEVar32 = param_5" identifier = identifier) ;) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" if (parenthesized_expression "(param_5 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_5 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" { (expression_statement "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);" (assignment_expression "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_5[-1].e_shstrndx + 1" (cast_expression "(int)&param_5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_5[-1].e_shstrndx" & (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar31;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar31" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar12 = param_1;" (assignment_expression "pEVar12 = param_1" identifier = identifier) ;) (expression_statement "pEVar5 = pEVar31;" (assignment_expression "pEVar5 = pEVar31" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar12 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar12 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar12" * (cast_expression "(Elf32_Ehdr **)pEVar12" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" identifier = (binary_expression "puVar3 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar5->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;" (assignment_expression "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar12->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar12->e_ident_class" & (field_expression "pEVar12->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;" (assignment_expression "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar5->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->e_ident_class" & (field_expression "pEVar5->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_5 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 * 4 + -4)" ( (binary_expression "(int)param_5 * 4 + -4" (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3" (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_5[-1].e_shstrndx * 4" (cast_expression "(int)&param_5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_5[-1].e_shstrndx" & (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)param_1 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_1" * (cast_expression "(Elf32_Ehdr **)param_1" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (expression_statement "piVar16 = local_30;" (assignment_expression "piVar16 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" if (parenthesized_expression "(local_30 != (int *)0x0)" ( (binary_expression "local_30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }" if (parenthesized_expression "(local_2c == *(int *)pEVar6)" ( (binary_expression "local_2c == *(int *)pEVar6" identifier == (pointer_expression "*(int *)pEVar6" * (cast_expression "(int *)pEVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)pEVar6;\n  }" { (return_statement "return *(int *)pEVar6;" return (pointer_expression "*(int *)pEVar6" * (cast_expression "(int *)pEVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar41 = __gmpz_powm_ui;" (assignment_expression "pcVar41 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar36 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = puVar36 + 0x6e770;" (assignment_expression "puVar37 = puVar36 + 0x6e770" identifier = (binary_expression "puVar36 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar36 + 0x66c70);" (assignment_expression "puVar4 = *(undefined4 **)(puVar36 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(puVar36 + 0x66c70)" * (cast_expression "(undefined4 **)(puVar36 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66c70)" ( (binary_expression "puVar36 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar39 = puVar30 + -0xa0;" (assignment_expression "puVar39 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar30 + -8)" * (cast_expression "(undefined1 **)(puVar30 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -8)" ( (binary_expression "puVar30 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" * (cast_expression "(undefined4 **)(puVar30 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x20)" ( (binary_expression "puVar30 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar30 + -4) = pcVar41;" (assignment_expression "*(code **)(puVar30 + -4) = pcVar41" (pointer_expression "*(code **)(puVar30 + -4)" * (cast_expression "(code **)(puVar30 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -4)" ( (binary_expression "puVar30 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar30 + -0x58)" * (cast_expression "(undefined4 **)(puVar30 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0xc)" ( (binary_expression "puVar30 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x10)" ( (binary_expression "puVar30 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x14)" ( (binary_expression "puVar30 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x18)" ( (binary_expression "puVar30 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x1c)" ( (binary_expression "puVar30 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x24)" ( (binary_expression "puVar30 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x28)" ( (binary_expression "puVar30 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar30 + -0x88) = puVar37;" (assignment_expression "*(undefined **)(puVar30 + -0x88) = puVar37" (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar30 + -0x54) = piVar16;" (assignment_expression "*(int **)(puVar30 + -0x54) = piVar16" (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" * (cast_expression "(undefined4 *)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" identifier = identifier) ;) (if_statement "if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" if (parenthesized_expression "(param_4 < 0x14)" ( (binary_expression "param_4 < 0x14" identifier < number_literal) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar28->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar28->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_abiversion" & (field_expression "pEVar28->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar34 = pEVar5;" (assignment_expression "pEVar34 = pEVar5" identifier = identifier) ;) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" if (parenthesized_expression "((int)pEVar5 < 0)" ( (binary_expression "(int)pEVar5 < 0" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar5" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar5" - (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar5 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar5 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }" { (expression_statement "uVar22 = param_4;" (assignment_expression "uVar22 = param_4" identifier = identifier) ;) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x66d0c))();" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x66d0c))()" identifier = (call_expression "(**(code **)(puVar36 + 0x66d0c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x66d0c))" ( (pointer_expression "**(code **)(puVar36 + 0x66d0c)" * (pointer_expression "*(code **)(puVar36 + 0x66d0c)" * (cast_expression "(code **)(puVar36 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66d0c)" ( (binary_expression "puVar36 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar29 = (uint)uVar45;" statement_identifier : (expression_statement "uVar29 = (uint)uVar45;" (assignment_expression "uVar29 = (uint)uVar45" identifier = (cast_expression "(uint)uVar45" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" ( (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" identifier = identifier) ;) }) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar34 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar34 * 4)" ( (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" { (expression_statement "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);" (assignment_expression "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar30 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar30 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar30 + -0x4c) != 1" (pointer_expression "**(int **)(puVar30 + -0x4c)" * (pointer_expression "*(int **)(puVar30 + -0x4c)" * (cast_expression "(int **)(puVar30 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar16[1] = uVar22;" (assignment_expression "piVar16[1] = uVar22" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar16[2] = 1;" (assignment_expression "*(undefined4 *)piVar16[2] = 1" (pointer_expression "*(undefined4 *)piVar16[2]" * (cast_expression "(undefined4 *)piVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar30 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x40)" * (cast_expression "(undefined4 *)(puVar30 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;" (assignment_expression "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum" (pointer_expression "*(word **)(puVar30 + -0x50)" * (cast_expression "(word **)(puVar30 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar31[-1].e_shnum" & (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar31[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar31[-1].e_shnum" & (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar20 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar20 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }" { (expression_statement "iVar13 = 0x20;" (assignment_expression "iVar13 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 0x18;\n        }" { (expression_statement "iVar13 = 0x18;" (assignment_expression "iVar13 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 1;\n        }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" { (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar13 = 8;\n        }" { (expression_statement "iVar13 = 8;" (assignment_expression "iVar13 = 8" identifier = number_literal) ;) })) (expression_statement "iVar15 = 0x19;" (assignment_expression "iVar15 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar20)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar15 = 0x11;\n        }" { (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x668bc)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x668bc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x668bc)" ( (binary_expression "puVar36 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];" (assignment_expression "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" identifier = (binary_expression "iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" identifier - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar20 >> iVar15) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar15)" ( (binary_expression "(uint)pEVar20 >> iVar15" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar30 + -0x6c) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x6c) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x6c)" * (cast_expression "(int *)(puVar30 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" identifier = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" { (if_statement "if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar39 = puVar30 + iVar13 + -0xa0;" (assignment_expression "puVar39 = puVar30 + iVar13 + -0xa0" identifier = (binary_expression "puVar30 + iVar13 + -0xa0" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + iVar13 + -0x88)" ( (binary_expression "puVar30 + iVar13 + -0x88" (binary_expression "puVar30 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" else (compound_statement "{\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar36 + 0x66a20))" ( (pointer_expression "**(code **)(puVar36 + 0x66a20)" * (pointer_expression "*(code **)(puVar36 + 0x66a20)" * (cast_expression "(code **)(puVar36 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66a20)" ( (binary_expression "puVar36 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar37 + -0x7ad4)" * (pointer_expression "*(code **)(puVar37 + -0x7ad4)" * (cast_expression "(code **)(puVar37 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7ad4)" ( (binary_expression "puVar37 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" * (cast_expression "(undefined4 *)(puVar30 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar11 = puVar39;" (assignment_expression "puVar11 = puVar39" identifier = identifier) ;) })) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" { (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4" (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50)" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "uVar22 = (uint)pEVar20 >> 0x10;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x10" identifier = (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (if_statement "if (uVar22 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar44 = ~(uint)pEVar20 / uVar22;" (assignment_expression "uVar44 = ~(uint)pEVar20 / uVar22" identifier = (binary_expression "~(uint)pEVar20 / uVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) / identifier)) ;) (expression_statement "in_t2 = (uint)pEVar20 & 0xffff;" (assignment_expression "in_t2 = (uint)pEVar20 & 0xffff" identifier = (binary_expression "(uint)pEVar20 & 0xffff" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar20 % uVar22 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % uVar22 << 0x10" (binary_expression "~(uint)pEVar20 % uVar22" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) % identifier) << number_literal) | number_literal) )))) ;) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" identifier = identifier) ;) (expression_statement "in_t1 = pEVar28;" (assignment_expression "in_t1 = pEVar28" identifier = identifier) ;) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" identifier = identifier) ;) (if_statement "if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar6 < in_t3)" ( (binary_expression "pEVar6 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" ( (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar29 = uVar44 - 1;" (assignment_expression "uVar29 = uVar44 - 1" identifier = (binary_expression "uVar44 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))" ( (binary_expression "(pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar6)" ( (binary_expression "pEVar20 <= pEVar6" identifier <= identifier) )) && (parenthesized_expression "(uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" ( (comma_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3" (assignment_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2)" identifier = (call_expression "CONCAT44(pEVar6,uVar44 - 2)" identifier (argument_list "(pEVar6,uVar44 - 2)" ( identifier , (binary_expression "uVar44 - 2" identifier - number_literal) )))) , (binary_expression "pEVar6 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;" (assignment_expression "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22" identifier = (binary_expression "(uint)((int)pEVar6 - (int)in_t3) / uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar6 - (int)in_t3)" ( (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar6 - (int)in_t3)" ( (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % identifier) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" ( (binary_expression "pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2)" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar20->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + -2)" ( (binary_expression "pEVar20->e_ident_magic_str + -2" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" identifier = identifier) ;) (if_statement "if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }" if (parenthesized_expression "((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))))" ( (binary_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" (parenthesized_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44))" ( (binary_expression "pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) )))) )) && (parenthesized_expression "((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" ( (parenthesized_expression "(pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))" ( (binary_expression "pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" (binary_expression "pEVar32 < pEVar20" identifier < identifier) || (parenthesized_expression "(uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" ( (comma_expression "uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (assignment_expression "uVar22 = uVar44 - 2" identifier = (binary_expression "uVar44 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar44)" ( (binary_expression "in_t2 * uVar44" identifier * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar22 = uVar44 - 1;\n    }" { (expression_statement "uVar22 = uVar44 - 1;" (assignment_expression "uVar22 = uVar44 - 1" identifier = (binary_expression "uVar44 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar22 = uVar29 << 0x10 | uVar22;" (assignment_expression "uVar22 = uVar29 << 0x10 | uVar22" identifier = (binary_expression "uVar29 << 0x10 | uVar22" (binary_expression "uVar29 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar20 * uVar22" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar6 < pEVar28)" ( (binary_expression "pEVar6 < pEVar28" identifier < identifier) )) (compound_statement "{\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar29 = pEVar6 < pEVar20 ^ 1;" (assignment_expression "uVar29 = pEVar6 < pEVar20 ^ 1" identifier = (binary_expression "pEVar6 < pEVar20 ^ 1" (binary_expression "pEVar6 < pEVar20" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" identifier = identifier) ;) (if_statement "if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar22 = (uVar22 - 1) - uVar29;" (assignment_expression "uVar22 = (uVar22 - 1) - uVar29" identifier = (binary_expression "(uVar22 - 1) - uVar29" (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" ( (binary_expression "(int)pEVar6 + (-(int)pEVar32 - (int)pEVar20)" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar32 - (int)pEVar20)" ( (binary_expression "-(int)pEVar32 - (int)pEVar20" (unary_expression "-(int)pEVar32" - (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" identifier = (cast_expression "(Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" ( (binary_expression "pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" ( (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar29 = uVar22;" (assignment_expression "uVar29 = uVar22" identifier = identifier) ;) (if_statement "if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }" if (parenthesized_expression "(((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6))" ( (binary_expression "(pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" (parenthesized_expression "(pEVar6 < pEVar32)" ( (binary_expression "pEVar6 < pEVar32" identifier < identifier) )) && (parenthesized_expression "(uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" ( (comma_expression "uVar29 = uVar22 - 1, pEVar20 <= pEVar6" (assignment_expression "uVar29 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) , (binary_expression "pEVar20 <= pEVar6" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar20 < pEVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar20 < pEVar6)" ( (binary_expression "pEVar20 < pEVar6" identifier < identifier) ))))) , (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar28 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar28 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar29 = uVar22 - 2;\n    }" { (expression_statement "uVar29 = uVar22 - 2;" (assignment_expression "uVar29 = uVar22 - 2" identifier = (binary_expression "uVar22 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar30 + -0x44) = uVar29;" (assignment_expression "*(uint *)(puVar30 + -0x44) = uVar29" (pointer_expression "*(uint *)(puVar30 + -0x44)" * (cast_expression "(uint *)(puVar30 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" identifier = identifier) ;) (if_statement "if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" if (parenthesized_expression "((int)pEVar28 < 0)" ( (binary_expression "(int)pEVar28 < 0" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar28" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar28" - (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);" (assignment_expression "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 8" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar32 <= (int)pEVar34)" ( (binary_expression "(int)pEVar32 <= (int)pEVar34" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" identifier = (pointer_expression "*(int **)(puVar30 + -0x40)" * (cast_expression "(int **)(puVar30 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a2c)" * (cast_expression "(code **)(puVar37 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a2c)" ( (binary_expression "puVar37 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar41)();" statement_identifier : (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar22 = *(int *)(puVar30 + -0x50) + 4;" (assignment_expression "uVar22 = *(int *)(puVar30 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar30 + -0x50) + 4" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar22 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = uVar22;" (assignment_expression "*(uint *)(puVar30 + -0x70) = uVar22" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" if (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d50);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d50)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" identifier = (call_expression "(*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);" (assignment_expression "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -100) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -100) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -100)" * (cast_expression "(undefined4 *)(puVar30 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" else (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -100)" * (cast_expression "(undefined1 **)(puVar30 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }))) (expression_statement "iVar13 = *(int *)(puVar30 + -100);" (assignment_expression "iVar13 = *(int *)(puVar30 + -100)" identifier = (pointer_expression "*(int *)(puVar30 + -100)" * (cast_expression "(int *)(puVar30 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x14)" * (cast_expression "(undefined1 **)(puVar3 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (expression_statement "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);" (call_expression "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27)" identifier (argument_list "(iVar13,pEVar6,pEVar32,uVar27)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar34;" (assignment_expression "pEVar32 = pEVar34" identifier = identifier) ;) (if_statement "if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" if (parenthesized_expression "(*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0)" ( (binary_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0" (pointer_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50))" * (cast_expression "(int *)(iVar13 + *(int *)(puVar30 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + *(int *)(puVar30 + -0x50))" ( (binary_expression "iVar13 + *(int *)(puVar30 + -0x50)" identifier + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" { (expression_statement "iVar13 = iVar13 + *(int *)(puVar30 + -0x70);" (assignment_expression "iVar13 = iVar13 + *(int *)(puVar30 + -0x70)" identifier = (binary_expression "iVar13 + *(int *)(puVar30 + -0x70)" identifier + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);" do (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar16 = (int *)(iVar13 + -8);" (assignment_expression "piVar16 = (int *)(iVar13 + -8)" identifier = (cast_expression "(int *)(iVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -8)" ( (binary_expression "iVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar34 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar34 << 3)" ( (binary_expression "(int)pEVar34 << 3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar16 == 0)" ( (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar34 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar34 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar34 * 8 + 4U" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -((int)pEVar34 * 8 + 8);" (assignment_expression "iVar13 = -((int)pEVar34 * 8 + 8)" identifier = (unary_expression "-((int)pEVar34 * 8 + 8)" - (parenthesized_expression "((int)pEVar34 * 8 + 8)" ( (binary_expression "(int)pEVar34 * 8 + 8" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + 0x18)" ( (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" else (compound_statement "{\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" if (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" if (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 8U" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" { (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -0x74)" * (cast_expression "(undefined1 **)(puVar30 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" identifier = (binary_expression "puVar3 + iVar13" identifier + identifier)) ;) }) (else_clause "else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" else (compound_statement "{\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" { (expression_statement "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" identifier = (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" ( (pointer_expression "**(code **)(puVar37 + -0x7d50)" * (pointer_expression "*(code **)(puVar37 + -0x7d50)" * (cast_expression "(code **)(puVar37 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d50)" ( (binary_expression "puVar37 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x74) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -0x74) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar30 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar30 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -100)" * (cast_expression "(undefined4 **)(puVar30 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "puVar11 = puVar25;" (assignment_expression "puVar11 = puVar25" identifier = identifier) ;) (if_statement "if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" ( (binary_expression "puVar25 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      }" { (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar32[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar32[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shstrndx" & (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" * (cast_expression "(Elf32_Ehdr **)pEVar31" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "(param_4 >> 1) - 1" (parenthesized_expression "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar13 = 0x1f - (int)param_1;" (assignment_expression "iVar13 = 0x1f - (int)param_1" identifier = (binary_expression "0x1f - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) (if_statement "if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }" { (if_statement "if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" if (parenthesized_expression "(pEVar34 == pEVar32)" ( (binary_expression "pEVar34 == pEVar32" identifier == identifier) )) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" { (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" identifier = (binary_expression "*(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        }" { (expression_statement "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar13 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar13 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -4)" ( (binary_expression "iVar13 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar25 = puVar25 + -1;" (assignment_expression "puVar25 = puVar25 + -1" identifier = (binary_expression "puVar25 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + -4)" ( (binary_expression "pbVar8 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;" if (parenthesized_expression "(pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4))" ( (binary_expression "pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + -4)" ( (binary_expression "pbVar8 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031264;" goto statement_identifier ;)) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;) })) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" identifier = (binary_expression "iVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar25 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar20 = param_6;" statement_identifier : (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;)) (expression_statement "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);" (call_expression "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" else (compound_statement "{\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" { (expression_statement "*(uint *)(puVar30 + 8) = param_4;" (assignment_expression "*(uint *)(puVar30 + 8) = param_4" (pointer_expression "*(uint *)(puVar30 + 8)" * (cast_expression "(uint *)(puVar30 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 8)" ( (binary_expression "puVar30 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (binary_expression "(param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "(param_4 << ((uint)param_1 & 0x1f))" ( (binary_expression "param_4 << ((uint)param_1 & 0x1f)" identifier << (parenthesized_expression "((uint)param_1 & 0x1f)" ( (binary_expression "(uint)param_1 & 0x1f" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;" (assignment_expression "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (pointer_expression "*(char **)(puVar30 + -0x80)" * (cast_expression "(char **)(puVar30 + -0x80)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) )))) = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar30 + -0x7c)" * (cast_expression "(int *)(puVar30 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar37 + -0x7fcc)" * (cast_expression "(int *)(puVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7fcc)" ( (binary_expression "puVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);" do (compound_statement "{\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" { (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);" (call_expression "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7cac))" ( (pointer_expression "**(code **)(puVar37 + -0x7cac)" * (pointer_expression "*(code **)(puVar37 + -0x7cac)" * (cast_expression "(code **)(puVar37 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7cac)" ( (binary_expression "puVar37 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar6,param_6,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60))" ( (binary_expression "(int)param_3 * 2 + *(int *)(puVar30 + -0x60)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" { (expression_statement "uVar24._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar8;" (assignment_expression "uVar24 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x18)" ( (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 0x10)" ( (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar24 >> 8)" ( (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d8c)" * (cast_expression "(code **)(puVar37 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d8c)" ( (binary_expression "puVar37 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" else (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x7c)" * (cast_expression "(code **)(puVar30 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar27._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar27._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar27._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar27._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar27._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar27._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar27._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar27._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar27._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar27._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar27._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar27._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" else (compound_statement "{\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" { (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar27 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x18)" ( (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 0x10)" ( (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar27 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar27 >> 8)" ( (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar27 = *(undefined4 *)pbVar8;" (assignment_expression "uVar27 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)param_3;" (assignment_expression "pbVar8 = (byte *)param_3" identifier = (cast_expression "(byte *)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = uVar27;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = uVar27" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" * (cast_expression "(undefined4 **)(puVar30 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7d8c)" * (cast_expression "(code **)(puVar37 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7d8c)" ( (binary_expression "puVar37 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) (if_statement "if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" if (parenthesized_expression "((int)param_1 < 0)" ( (binary_expression "(int)param_1 < 0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -100);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -100)" * (cast_expression "(undefined4 *)(puVar30 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -100)" ( (binary_expression "puVar30 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(*pcVar41)(pEVar6,param_6,param_3,uVar27);" (call_expression "(*pcVar41)(pEVar6,param_6,param_3,uVar27)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_6,param_3,uVar27)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(param_3->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3->e_ident_magic_str + -2)" ( (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) + (unary_expression "-(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" - (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (cast_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" ( (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)" (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(param_3->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3->e_ident_magic_str + -2)" ( (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) + (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) == number_literal) ))))) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }" { (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" { (expression_statement "uVar26._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar26._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar26._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar26._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar26._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar26._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar26._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar26._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar26._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar26._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" else (compound_statement "{\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" { (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" identifier = identifier) ;) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" identifier = (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                }" { (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)pbVar8;" (assignment_expression "uVar26 = *(undefined4 *)pbVar8" identifier = (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" else (compound_statement "{\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x7c)" * (cast_expression "(code **)(puVar30 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x7c)" ( (binary_expression "puVar30 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar6" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar6" * (cast_expression "(Elf32_Ehdr **)pEVar6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar6;" (assignment_expression "pEVar31 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }" { (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_6" * (cast_expression "(Elf32_Ehdr **)param_6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar28" * (cast_expression "(Elf32_Ehdr **)pEVar28" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar31->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_class" & (field_expression "pEVar31->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = pEVar20;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = pEVar20" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" * (cast_expression "(undefined4 **)(puVar30 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x80)" ( (binary_expression "puVar30 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "param_1 = (Elf32_Ehdr *)((int)param_1 << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((int)param_1 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)param_1 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 << 1)" ( (binary_expression "(int)param_1 << 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) ;) (expression_statement "param_4 = *(uint *)(puVar30 + 8);" (assignment_expression "param_4 = *(uint *)(puVar30 + 8)" identifier = (pointer_expression "*(uint *)(puVar30 + 8)" * (cast_expression "(uint *)(puVar30 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 8)" ( (binary_expression "puVar30 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;" statement_identifier : (expression_statement "pEVar31 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar28 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar28 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" statement_identifier : (if_statement "if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" if (parenthesized_expression "((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0))" ( (binary_expression "(0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)param_3)" ( (binary_expression "0 < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" ( (binary_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" * (cast_expression "(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" { (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);" do (compound_statement "{\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        }" { (expression_statement "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" ( (binary_expression "(uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" ( (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" identifier = (cast_expression "(char *)(pbVar8 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + -8)" ( (binary_expression "pbVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar10 == 0)" ( (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" * (cast_expression "(int *)pcVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) }))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" if (parenthesized_expression "((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" ( (binary_expression "(uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" ( (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);" statement_identifier : (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar16 < (int)param_3) goto LAB_00031474;" if (parenthesized_expression "(*piVar16 < (int)param_3)" ( (binary_expression "*piVar16 < (int)param_3" (pointer_expression "*piVar16" * identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        uVar19 = param_4 & 1;" statement_identifier : (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" else (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" { (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x68) + 8" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar20 = param_1;" (assignment_expression "pEVar20 = param_1" identifier = identifier) ;) (expression_statement "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" identifier = (call_expression "(**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7b2c))" ( (pointer_expression "**(code **)(puVar37 + -0x7b2c)" * (pointer_expression "*(code **)(puVar37 + -0x7b2c)" * (cast_expression "(code **)(puVar37 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b2c)" ( (binary_expression "puVar37 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(param_6,param_1,param_6,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" statement_identifier : (if_statement "if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" if (parenthesized_expression "((param_6 == param_1) || ((int)pEVar34 <= (int)param_3))" ( (binary_expression "(param_6 == param_1) || ((int)pEVar34 <= (int)param_3)" (parenthesized_expression "(param_6 == param_1)" ( (binary_expression "param_6 == param_1" identifier == identifier) )) || (parenthesized_expression "((int)pEVar34 <= (int)param_3)" ( (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);" do (compound_statement "{\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          }" { (expression_statement "uVar27 = *(undefined4 *)pbVar9;" (assignment_expression "uVar27 = *(undefined4 *)pbVar9" identifier = (pointer_expression "*(undefined4 *)pbVar9" * (cast_expression "(undefined4 *)pbVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar8 = uVar27;" (assignment_expression "*(undefined4 *)pbVar8 = uVar27" (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar20 != (Elf32_Ehdr *)pbVar9)" ( (binary_expression "pEVar20 != (Elf32_Ehdr *)pbVar9" identifier != (cast_expression "(Elf32_Ehdr *)pbVar9" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" identifier = (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" else (compound_statement "{\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" { (if_statement "if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar34)" ( (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pbVar8;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pbVar8" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar8" * (cast_expression "(Elf32_Ehdr **)pbVar8" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar9" * (cast_expression "(undefined1 **)pbVar9" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar20[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar20[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shstrndx" & (field_expression "pEVar20[-1].e_shstrndx" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" identifier = identifier) ;) (while_statement "while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" while (parenthesized_expression "(param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)" ( (comma_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0" (assignment_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)param_3->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" { (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" identifier = (binary_expression "pbVar9 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar34 == param_3) goto LAB_00031130;" if (parenthesized_expression "(pEVar34 == param_3)" ( (binary_expression "pEVar34 == param_3" identifier == identifier) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);" (assignment_expression "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar8 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar31[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar31[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar31[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar31[-1].e_shstrndx" & (field_expression "pEVar31[-1].e_shstrndx" (subscript_expression "pEVar31[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar9 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pbVar9 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pbVar9" * (cast_expression "(Elf32_Ehdr **)pbVar9" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);" statement_identifier : (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" identifier = (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + iVar13 + -1)" ( (binary_expression "param_6->e_ident_magic_str + iVar13 + -1" (binary_expression "param_6->e_ident_magic_str + iVar13" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar13._0_1_ = pEVar31->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar31->e_ident_magic_num" (field_expression "iVar13._0_1_" identifier . field_identifier) = (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar13._1_1_ = pEVar31->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar31->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._2_1_ = pEVar31->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar31->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._3_1_ = pEVar31->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar31->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" identifier . field_identifier) = (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" { (expression_statement "iVar13 = *(int *)(puVar30 + -0x78);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x78)" identifier = (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (do_statement "do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);" do (compound_statement "{\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          }" { (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (if_statement "if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" identifier = (cast_expression "(char *)(pbVar8 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + -8)" ( (binary_expression "pbVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar10 == 0)" ( (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" * (cast_expression "(int *)pcVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) (expression_statement "*(int *)(puVar30 + -0x78) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x78) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78))" ( (binary_expression "**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)" (pointer_expression "**(int **)(puVar30 + -0x54)" * (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar30 + -0x78)" * (cast_expression "(int *)(puVar30 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar20 = param_3;" statement_identifier : (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" identifier = identifier) ;)) (expression_statement "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54));" (call_expression "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54))" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(*(undefined4 *)(puVar30 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x78)" ( (binary_expression "puVar30 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)param_6" identifier = (pointer_expression "*(Elf32_Ehdr **)param_6" * (cast_expression "(Elf32_Ehdr **)param_6" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);" (assignment_expression "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 8" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar23;" (assignment_expression "puVar4 = puVar23" identifier = identifier) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar20;" (assignment_expression "*puVar4 = pEVar20" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar23 = pEVar20;" (assignment_expression "*puVar23 = pEVar20" (pointer_expression "*puVar23" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);" (assignment_expression "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" identifier = (call_expression "(**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar37 + -0x7ad4)" * (pointer_expression "*(code **)(puVar37 + -0x7ad4)" * (cast_expression "(code **)(puVar37 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7ad4)" ( (binary_expression "puVar37 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar6,param_6,param_3,pEVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" identifier = (pointer_expression "*(int *)(puVar30 + -0x88)" * (cast_expression "(int *)(puVar30 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = (int)param_3 * 4;" (assignment_expression "iVar13 = (int)param_3 * 4" identifier = (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str + ((iVar15 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar15 != 0) - 1)" ( (binary_expression "(iVar15 != 0) - 1" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;" (assignment_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" * (cast_expression "(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar6->e_ident_magic_str + iVar13 + -1)" ( (binary_expression "pEVar6->e_ident_magic_str + iVar13 + -1" (binary_expression "pEVar6->e_ident_magic_str + iVar13" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pEVar28;" (assignment_expression "param_1 = pEVar28" identifier = identifier) ;) (if_statement "if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar34 <= (int)param_3)" ( (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" * (cast_expression "(undefined4 *)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" * (cast_expression "(undefined4 *)(puVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x14)" ( (binary_expression "puVar3 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" * (cast_expression "(undefined4 *)(puVar30 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x74)" ( (binary_expression "puVar30 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" * (cast_expression "(undefined1 **)(puVar3 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030430(pEVar6,param_3,uVar27,pEVar34);" (call_expression "FUN_00030430(pEVar6,param_3,uVar27,pEVar34)" identifier (argument_list "(pEVar6,param_3,uVar27,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shstrndx" & (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" identifier = (pointer_expression "*(int *)(puVar30 + -0x88)" * (cast_expression "(int *)(puVar30 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar17._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar17._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar17._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar17._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar17._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar17._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar17._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" else (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" { (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x18)" ( (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 0x10)" ( (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar17 >> 8)" ( (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar17._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar17._0_1_ = pEVar20->e_ident_class" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar17._1_1_ = pEVar20->e_ident_data" (field_expression "uVar17._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar17._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar17._2_1_ = pEVar20->e_ident_version" (field_expression "uVar17._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar17._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar17._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar17._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" * (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" identifier = identifier) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar20 = param_6;" statement_identifier : (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar18 + -0x7ae0)" * (pointer_expression "*(code **)(iVar18 + -0x7ae0)" * (cast_expression "(code **)(iVar18 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + -0x7ae0)" ( (binary_expression "iVar18 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" * (cast_expression "(undefined4 *)(puVar30 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x6c)" ( (binary_expression "puVar30 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" ( (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar21._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" identifier = (binary_expression "puVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar21._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar21._0_1_ = pEVar20->e_ident_class" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar21._1_1_ = pEVar20->e_ident_data" (field_expression "uVar21._1_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar21._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar21._2_1_ = pEVar20->e_ident_version" (field_expression "uVar21._2_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar21._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar21._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar21._3_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" ( (binary_expression "puVar11 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3[-1].e_shstrndx" & (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x18)" ( (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 0x10)" ( (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar21 >> 8)" ( (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28)" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar18 + -0x7ae0)" * (pointer_expression "*(code **)(iVar18 + -0x7ae0)" * (cast_expression "(code **)(iVar18 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + -0x7ae0)" ( (binary_expression "iVar18 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,0,pEVar28)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" identifier = (pointer_expression "*(int **)(puVar30 + -0x54)" * (cast_expression "(int **)(puVar30 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar16 < 0)" ( (binary_expression "*piVar16 < 0" (pointer_expression "*piVar16" * identifier) < number_literal) )) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }" { (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar37 + -0x7a84))(param_1);" (call_expression "(**(code **)(puVar37 + -0x7a84))(param_1)" (parenthesized_expression "(**(code **)(puVar37 + -0x7a84))" ( (pointer_expression "**(code **)(puVar37 + -0x7a84)" * (pointer_expression "*(code **)(puVar37 + -0x7a84)" * (cast_expression "(code **)(puVar37 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a84)" ( (binary_expression "puVar37 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "param_1->e_ident_class = 0;" (assignment_expression "param_1->e_ident_class = 0" (field_expression "param_1->e_ident_class" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_data = 0;" (assignment_expression "param_1->e_ident_data = 0" (field_expression "param_1->e_ident_data" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_version = 0;" (assignment_expression "param_1->e_ident_version = 0" (field_expression "param_1->e_ident_version" identifier -> field_identifier) = number_literal) ;) (expression_statement "param_1->e_ident_osabi = 0;" (assignment_expression "param_1->e_ident_osabi = 0" (field_expression "param_1->e_ident_osabi" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);" statement_identifier : (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" identifier = (pointer_expression "*(int **)(puVar30 + -0x40)" * (cast_expression "(int **)(puVar30 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" identifier = (pointer_expression "*(int **)(puVar30 + -0x58)" * (cast_expression "(int **)(puVar30 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a2c)" * (cast_expression "(code **)(puVar37 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a2c)" ( (binary_expression "puVar37 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" else (compound_statement "{\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" { (expression_statement "pcVar41 = *(code **)(puVar36 + 0x66c10);" (assignment_expression "pcVar41 = *(code **)(puVar36 + 0x66c10)" identifier = (pointer_expression "*(code **)(puVar36 + 0x66c10)" * (cast_expression "(code **)(puVar36 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x66c10)" ( (binary_expression "puVar36 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x3c) = param_4;" (assignment_expression "*(uint *)(puVar30 + -0x3c) = param_4" (pointer_expression "*(uint *)(puVar30 + -0x3c)" * (cast_expression "(uint *)(puVar30 + -0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x34)" * (cast_expression "(undefined4 *)(puVar30 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" * (cast_expression "(undefined1 **)(puVar30 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar30 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" identifier = (pointer_expression "*(undefined **)(puVar30 + -0x88)" * (cast_expression "(undefined **)(puVar30 + -0x88)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x88)" ( (binary_expression "puVar30 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);" statement_identifier : (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" identifier = (pointer_expression "*(int **)(puVar30 + -0x58)" * (cast_expression "(int **)(puVar30 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }" if (parenthesized_expression "(*(int *)(puVar30 + -0x2c) == *piVar7)" ( (binary_expression "*(int *)(puVar30 + -0x2c) == *piVar7" (pointer_expression "*(int *)(puVar30 + -0x2c)" * (cast_expression "(int *)(puVar30 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return *piVar7;\n  }" { (return_statement "return *piVar7;" return (pointer_expression "*piVar7" * identifier) ;) })) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b70)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7b70)" * (cast_expression "(code **)(puVar37 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7b70)" ( (binary_expression "puVar37 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = 0x3153c;" (assignment_expression "uVar27 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar41 + 0x6db00;" (assignment_expression "pcVar38 = pcVar41 + 0x6db00" identifier = (binary_expression "pcVar41 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(uint *)(puVar3 + -0x10) = uVar19;" (assignment_expression "*(uint *)(puVar3 + -0x10) = uVar19" (pointer_expression "*(uint *)(puVar3 + -0x10)" * (cast_expression "(uint *)(puVar3 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x10)" ( (binary_expression "puVar3 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar7 = *(int **)(pcVar41 + 0x66000);" (assignment_expression "piVar7 = *(int **)(pcVar41 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar41 + 0x66000)" * (cast_expression "(int **)(pcVar41 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x66000)" ( (binary_expression "pcVar41 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0" (pointer_expression "*(undefined1 **)(puVar3 + -8)" * (cast_expression "(undefined1 **)(puVar3 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -8)" ( (binary_expression "puVar3 + -8" identifier + number_literal) )))) = (binary_expression "puVar30 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x14)" ( (binary_expression "puVar3 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x18)" ( (binary_expression "puVar3 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar27" (pointer_expression "*(undefined4 *)(puVar3 + -4)" * (cast_expression "(undefined4 *)(puVar3 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -4)" ( (binary_expression "puVar3 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar3 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0xc)" ( (binary_expression "puVar3 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar38;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar38" (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar3 + -0x1c) = *piVar7;" (assignment_expression "*(int *)(puVar3 + -0x1c) = *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar20)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar20" (cast_expression "(Elf32_Ehdr *)&DAT_00000004" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier)) < identifier) )) (compound_statement "{\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }" { (if_statement "if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" if (parenthesized_expression "(*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1))" ( (binary_expression "*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (pointer_expression "*piVar16" * identifier) < (cast_expression "(int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" ( (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1" (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6)" (parenthesized_expression "((uint)pEVar20 >> 5)" ( (binary_expression "(uint)pEVar20 >> 5" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar20 >> 6)" ( (binary_expression "(uint)pEVar20 >> 6" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar41 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar41 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar41 + 0x6607c)" * (pointer_expression "*(code **)(pcVar41 + 0x6607c)" * (cast_expression "(code **)(pcVar41 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x6607c)" ( (binary_expression "pcVar41 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" else (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar16[2];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar16[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar16[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" identifier = (call_expression "(**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar38 + -0x7efc)" * (pointer_expression "*(code **)(pcVar38 + -0x7efc)" * (cast_expression "(code **)(pcVar38 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7efc)" ( (binary_expression "pcVar38 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar32,pEVar20)" ( identifier , identifier )))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar38 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar38 + -0x7c6c)" * (cast_expression "(int *)(pcVar38 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7c6c)" ( (binary_expression "pcVar38 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);" do (compound_statement "{\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    }" { (expression_statement "uVar22 = uVar19;" (assignment_expression "uVar22 = uVar19" identifier = identifier) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" identifier = (binary_expression "puVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar22 - 1;" (assignment_expression "uVar19 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar31 < pEVar20)" ( (binary_expression "pEVar31 < pEVar20" identifier < identifier) )) ;) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;" (assignment_expression "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4" identifier = (binary_expression "((iVar13 + 1U) / uVar22 + 1) * 4" (parenthesized_expression "((iVar13 + 1U) / uVar22 + 1)" ( (binary_expression "(iVar13 + 1U) / uVar22 + 1" (binary_expression "(iVar13 + 1U) / uVar22" (parenthesized_expression "(iVar13 + 1U)" ( (binary_expression "iVar13 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar3 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar3 + -0x20)" * (cast_expression "(undefined4 *)(puVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(uVar19 < 0x7f01)" ( (binary_expression "uVar19 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }" { (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar11 = puVar3 + iVar13 + -0x38;" (assignment_expression "puVar11 = puVar3 + iVar13 + -0x38" identifier = (binary_expression "puVar3 + iVar13 + -0x38" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar13 + -0x28)" ( (binary_expression "puVar3 + iVar13 + -0x28" (binary_expression "puVar3 + iVar13" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar38 + -0x7d50)" * (pointer_expression "*(code **)(pcVar38 + -0x7d50)" * (cast_expression "(code **)(pcVar38 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7d50)" ( (binary_expression "pcVar38 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 6;" (assignment_expression "uVar22 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);" do (compound_statement "{\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    }" { (expression_statement "uVar43 = uVar19 + 1;" (assignment_expression "uVar43 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar13;" (assignment_expression "iVar18 = iVar13" identifier = identifier) ;) (expression_statement "uVar44 = uVar22;" (assignment_expression "uVar44 = uVar22" identifier = identifier) ;) (if_statement "if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" if (parenthesized_expression "((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0)" ( (binary_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0" (parenthesized_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1))" ( (binary_expression "uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" * (cast_expression "(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" ( (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4 + -1" (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" { (expression_statement "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;" (assignment_expression "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3" identifier = (binary_expression "(uVar43 & 1) + 1 + uVar43 * 3" (binary_expression "(uVar43 & 1) + 1" (parenthesized_expression "(uVar43 & 1)" ( (binary_expression "uVar43 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar43 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" ( (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20" (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20)" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar20)" identifier (argument_list "(pEVar20)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar44 = uVar22 * uVar44;\n        }" { (expression_statement "uVar44 = uVar22 * uVar44;" (assignment_expression "uVar44 = uVar22 * uVar44" identifier = (binary_expression "uVar22 * uVar44" identifier * identifier)) ;) }) (else_clause "else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" else (compound_statement "{\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" { (expression_statement "iVar18 = iVar13 + 1;" (assignment_expression "iVar18 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" * (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar13 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);" (assignment_expression "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f)" identifier = (binary_expression "uVar29 * 2 - ((int)uVar29 >> 0x1f)" (binary_expression "uVar29 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar29 >> 0x1f)" ( (binary_expression "(int)uVar29 >> 0x1f" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar20[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar20[-1].e_shentsize + 1" (cast_expression "(int)&pEVar20[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar20[-1].e_shentsize" & (field_expression "pEVar20[-1].e_shentsize" (subscript_expression "pEVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar15 = iVar15 + (uVar29 & 1);" (assignment_expression "iVar15 = iVar15 + (uVar29 & 1)" identifier = (binary_expression "iVar15 + (uVar29 & 1)" identifier + (parenthesized_expression "(uVar29 & 1)" ( (binary_expression "uVar29 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar13 = iVar18;" (assignment_expression "iVar13 = iVar18" identifier = identifier) ;) (expression_statement "uVar19 = uVar43;" (assignment_expression "uVar19 = uVar43" identifier = identifier) ;) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }" { (expression_statement "*(uint *)piVar16[2] = uVar44;" (assignment_expression "*(uint *)piVar16[2] = uVar44" (pointer_expression "*(uint *)piVar16[2]" * (cast_expression "(uint *)piVar16[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7dbc);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7dbc)" * (cast_expression "(code **)(pcVar38 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7dbc)" ( (binary_expression "pcVar38 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" * (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" ( (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4" (field_expression "pEVar31->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar41)(piVar16,pEVar31,iVar18 + 1);" (call_expression "(*pcVar41)(piVar16,pEVar31,iVar18 + 1)" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "(piVar16,pEVar31,iVar18 + 1)" ( identifier , identifier , (binary_expression "iVar18 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar33 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar33 = *(int **)(puVar3 + -0x20)" identifier = (pointer_expression "*(int **)(puVar3 + -0x20)" * (cast_expression "(int **)(puVar3 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar38 + -0x7a2c))();" (call_expression "(**(code **)(pcVar38 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar38 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar38 + -0x7a2c)" * (cast_expression "(code **)(pcVar38 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7a2c)" ( (binary_expression "pcVar38 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c)" (binary_expression "(int)pEVar20 * 4" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar41 + 0x65b2c)" * (cast_expression "(int *)(pcVar41 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar41 + 0x65b2c)" ( (binary_expression "pcVar41 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;" (assignment_expression "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28" (pointer_expression "*(undefined4 *)piVar16[2]" * (cast_expression "(undefined4 *)piVar16[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar28" * (cast_expression "(undefined4 *)pEVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar33 = piVar16;" (assignment_expression "piVar33 = piVar16" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" identifier = identifier) ;) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }" if (parenthesized_expression "(*(int *)(puVar3 + -0x1c) == *piVar7)" ( (binary_expression "*(int *)(puVar3 + -0x1c) == *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" * (cast_expression "(int *)(puVar3 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return *piVar7;\n  }" { (return_statement "return *piVar7;" return (pointer_expression "*piVar7" * identifier) ;) })) (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar38 + -0x7b70)" * (cast_expression "(code **)(pcVar38 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7b70)" ( (binary_expression "pcVar38 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = __gmpz_probab_prime_p;" (assignment_expression "pcVar42 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x659a8);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar41 + 0x659a8)" * (cast_expression "(code **)(pcVar41 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x659a8)" ( (binary_expression "pcVar41 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar11 + -0x24)" * (cast_expression "(int **)(puVar11 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x20) = piVar7;" (assignment_expression "*(int **)(puVar11 + -0x20) = piVar7" (pointer_expression "*(int **)(puVar11 + -0x20)" * (cast_expression "(int **)(puVar11 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = *(int **)(pcVar41 + 0x65da0);" (assignment_expression "piVar16 = *(int **)(pcVar41 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar41 + 0x65da0)" * (cast_expression "(int **)(pcVar41 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65da0)" ( (binary_expression "pcVar41 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;" (assignment_expression "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0" (pointer_expression "*(code **)(puVar11 + -0x90)" * (cast_expression "(code **)(puVar11 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar41 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar11 + -4) = pcVar42;" (assignment_expression "*(code **)(puVar11 + -4) = pcVar42" (pointer_expression "*(code **)(puVar11 + -4)" * (cast_expression "(code **)(puVar11 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -4)" ( (binary_expression "puVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar11 + -8)" * (cast_expression "(undefined1 **)(puVar11 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x2c) = *piVar16;" (assignment_expression "*(int *)(puVar11 + -0x2c) = *piVar16" (pointer_expression "*(int *)(puVar11 + -0x2c)" * (cast_expression "(int *)(puVar11 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar13 = (*pcVar38)();" (assignment_expression "iVar13 = (*pcVar38)()" identifier = (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar35 = (uint *)piVar33[2];" (assignment_expression "puVar35 = (uint *)piVar33[2]" identifier = (cast_expression "(uint *)piVar33[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar33[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)piVar33[1];" (assignment_expression "pEVar34 = (Elf32_Ehdr *)piVar33[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar33[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar33[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = *puVar35;" (assignment_expression "uVar19 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (if_statement "if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33)" identifier = (call_expression "(**(code **)(iVar15 + -0x7ab8))(piVar33)" (parenthesized_expression "(**(code **)(iVar15 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar15 + -0x7ab8)" * (pointer_expression "*(code **)(iVar15 + -0x7ab8)" * (cast_expression "(code **)(iVar15 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7ab8)" ( (binary_expression "iVar15 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(piVar33)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" if (parenthesized_expression "(uVar19 < 3)" ( (binary_expression "uVar19 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }" { (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (if_statement "if (uVar19 != 2) {\n            iVar13 = 0;\n          }" if (parenthesized_expression "(uVar19 != 2)" ( (binary_expression "uVar19 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar13 = 0;\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" else (compound_statement "{\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" { (expression_statement "uVar22 = 3;" (assignment_expression "uVar22 = 3" identifier = number_literal) ;) (if_statement "if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" if (parenthesized_expression "((uVar19 & 1) != 0)" ( (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" { (do_statement "do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);" do (compound_statement "{\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            }" { (if_statement "if (uVar22 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar29 = uVar19 % uVar22;" (assignment_expression "uVar29 = uVar19 % uVar22" identifier = (binary_expression "uVar19 % uVar22" identifier % identifier)) ;) (if_statement "if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" if (parenthesized_expression "(uVar19 / uVar22 < uVar22)" ( (binary_expression "uVar19 / uVar22 < uVar22" (binary_expression "uVar19 / uVar22" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" { (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "uVar22 = uVar22 + 2;" (assignment_expression "uVar22 = uVar22 + 2" identifier = (binary_expression "uVar22 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar34" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar34" - (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar11 + -0x6c) = puVar35;" (assignment_expression "*(uint **)(puVar11 + -0x6c) = puVar35" (pointer_expression "*(uint **)(puVar11 + -0x6c)" * (cast_expression "(uint **)(puVar11 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x6c)" ( (binary_expression "puVar11 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar33 = (int *)(puVar11 + -0x74);" (assignment_expression "piVar33 = (int *)(puVar11 + -0x74)" identifier = (cast_expression "(int *)(puVar11 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x74)" ( (binary_expression "puVar11 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x70)" ( (binary_expression "puVar11 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" if (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" { (expression_statement "uVar19 = uVar19 & 1;" (assignment_expression "uVar19 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (uVar19 == 0) goto LAB_00031824;" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" identifier = identifier) ;) (if_statement "if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar34 < 10)" ( (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c24))" ( (pointer_expression "**(code **)(iVar15 + -0x7c24)" * (pointer_expression "*(code **)(iVar15 + -0x7c24)" * (cast_expression "(code **)(iVar15 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c24)" ( (binary_expression "iVar15 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" else (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar15 + -0x7b80))" ( (pointer_expression "**(code **)(iVar15 + -0x7b80)" * (pointer_expression "*(code **)(iVar15 + -0x7b80)" * (cast_expression "(code **)(iVar15 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b80)" ( (binary_expression "iVar15 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" if (parenthesized_expression "((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))))" ( (binary_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7))" ( (binary_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)" (parenthesized_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5))" ( (binary_expression "(uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)" (parenthesized_expression "(uVar22 != (uVar22 / 3) * 3)" ( (binary_expression "uVar22 != (uVar22 / 3) * 3" identifier != (binary_expression "(uVar22 / 3) * 3" (parenthesized_expression "(uVar22 / 3)" ( (binary_expression "uVar22 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar22 != (uVar22 / 5) * 5)" ( (binary_expression "uVar22 != (uVar22 / 5) * 5" identifier != (binary_expression "(uVar22 / 5) * 5" (parenthesized_expression "(uVar22 / 5)" ( (binary_expression "uVar22 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar22 != (uVar22 / 7) * 7)" ( (binary_expression "uVar22 != (uVar22 / 7) * 7" identifier != (binary_expression "(uVar22 / 7) * 7" (parenthesized_expression "(uVar22 / 7)" ( (binary_expression "uVar22 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))" ( (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)" (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb" identifier != (binary_expression "(uVar22 / 0xb) * 0xb" (parenthesized_expression "(uVar22 / 0xb)" ( (binary_expression "uVar22 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar22 != (uVar22 / 0xd) * 0xd)" ( (binary_expression "uVar22 != (uVar22 / 0xd) * 0xd" identifier != (binary_expression "(uVar22 / 0xd) * 0xd" (parenthesized_expression "(uVar22 / 0xd)" ( (binary_expression "uVar22 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))" ( (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11" identifier != (binary_expression "(uVar22 / 0x11) * 0x11" (parenthesized_expression "(uVar22 / 0x11)" ( (binary_expression "uVar22 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))" ( (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)" (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13" identifier != (binary_expression "(uVar22 / 0x13) * 0x13" (parenthesized_expression "(uVar22 / 0x13)" ( (binary_expression "uVar22 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar22 != (uVar22 / 0x17) * 0x17)" ( (binary_expression "uVar22 != (uVar22 / 0x17) * 0x17" identifier != (binary_expression "(uVar22 / 0x17) * 0x17" (parenthesized_expression "(uVar22 / 0x17)" ( (binary_expression "uVar22 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar22 != (uVar22 / 0x1d) * 0x1d)" ( (binary_expression "uVar22 != (uVar22 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar22 / 0x1d) * 0x1d" (parenthesized_expression "(uVar22 / 0x1d)" ( (binary_expression "uVar22 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" { (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2)" identifier = (call_expression "(**(code **)(iVar15 + -0x7f14))(piVar33,2)" (parenthesized_expression "(**(code **)(iVar15 + -0x7f14))" ( (pointer_expression "**(code **)(iVar15 + -0x7f14)" * (pointer_expression "*(code **)(iVar15 + -0x7f14)" * (cast_expression "(code **)(iVar15 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7f14)" ( (binary_expression "iVar15 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar33,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar22)" ( (binary_expression "0x1f < uVar22" number_literal < identifier) )) (compound_statement "{\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar30 = puVar11 + -0x68;" (assignment_expression "puVar30 = puVar11 + -0x68" identifier = (binary_expression "puVar11 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar29 = 0x1f;" (assignment_expression "uVar29 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar44 = 3;" statement_identifier : (expression_statement "uVar44 = 3;" (assignment_expression "uVar44 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);" do (compound_statement "{\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        }" { (if_statement "if (uVar44 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar44 == 0)" ( (binary_expression "uVar44 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar43 = uVar29 % uVar44;" (assignment_expression "uVar43 = uVar29 % uVar44" identifier = (binary_expression "uVar29 % uVar44" identifier % identifier)) ;) (if_statement "if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar29 / uVar44 < uVar44)" ( (binary_expression "uVar29 / uVar44 < uVar44" (binary_expression "uVar29 / uVar44" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0)" ( (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0" (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" (binary_expression "iVar18 * uVar19" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20" (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar40 = iVar15 + 1;" (assignment_expression "iVar40 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29)" identifier = (call_expression "(uint)((ulonglong)uVar19 * (ulonglong)uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar19 * (ulonglong)uVar29)" ( (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar11 + -0x7c) = puVar30;" (assignment_expression "*(undefined1 **)(puVar11 + -0x7c) = puVar30" (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x80) = iVar18;" (assignment_expression "*(int *)(puVar11 + -0x80) = iVar18" (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar11 + -0x84) = uVar22;" (assignment_expression "*(uint *)(puVar11 + -0x84) = uVar22" (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar34 < 10)" ( (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }" { (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c68))" ( (pointer_expression "**(code **)(iVar13 + -0x7c68)" * (pointer_expression "*(code **)(iVar13 + -0x7c68)" * (cast_expression "(code **)(iVar13 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c68)" ( (binary_expression "iVar13 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,uVar19,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" identifier = (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" else (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" { (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35,pEVar34,uVar19)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" * (cast_expression "(undefined1 **)(puVar11 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x7c)" ( (binary_expression "puVar11 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" identifier = (pointer_expression "*(int *)(puVar11 + -0x80)" * (cast_expression "(int *)(puVar11 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x80)" ( (binary_expression "puVar11 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar11 + -0x84)" * (cast_expression "(uint *)(puVar11 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x84)" ( (binary_expression "puVar11 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);" (assignment_expression "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + (iVar15 + 0x3fffffff) * 4)" ( (binary_expression "puVar30 + (iVar15 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar15 + 0x3fffffff) * 4" (parenthesized_expression "(iVar15 + 0x3fffffff)" ( (binary_expression "iVar15 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar44 = uVar44 + 2;" (assignment_expression "uVar44 = uVar44 + 2" identifier = (binary_expression "uVar44 + 2" identifier + number_literal)) ;) (expression_statement "iVar40 = iVar15;" (assignment_expression "iVar40 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar43 != 0)" ( (binary_expression "uVar43 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" statement_identifier : (expression_statement "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33)" identifier = (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar33)" (parenthesized_expression "(**(code **)(iVar13 + -0x7d48))" ( (pointer_expression "**(code **)(iVar13 + -0x7d48)" * (pointer_expression "*(code **)(iVar13 + -0x7d48)" * (cast_expression "(code **)(iVar13 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7d48)" ( (binary_expression "iVar13 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(piVar33)" ( identifier )))) ;)) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar6 = pEVar31;" (assignment_expression "pEVar6 = pEVar31" identifier = identifier) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);" statement_identifier : (expression_statement "iVar18 = *(int *)(puVar11 + -0x2c);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar11 + -0x2c)" * (cast_expression "(int *)(puVar11 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar18 == *piVar16) {\n    return iVar13;\n  }" if (parenthesized_expression "(iVar18 == *piVar16)" ( (binary_expression "iVar18 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return iVar13;\n  }" { (return_statement "return iVar13;" return identifier ;) })) (labeled_statement "LAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);" statement_identifier : (expression_statement "pcVar41 = *(code **)(iVar15 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(iVar15 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar15 + -0x7b70)" * (cast_expression "(code **)(iVar15 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7b70)" ( (binary_expression "iVar15 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar27 = 0x31c64;" (assignment_expression "uVar27 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" ( (pointer_expression "*pcVar41" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar41 + 0x6d3d0;" (assignment_expression "pcVar38 = pcVar41 + 0x6d3d0" identifier = (binary_expression "pcVar41 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar10 = *(char **)(pcVar41 + 0x65518);" (assignment_expression "pcVar10 = *(char **)(pcVar41 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar41 + 0x65518)" * (cast_expression "(char **)(pcVar41 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65518)" ( (binary_expression "pcVar41 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0xa8) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0xa8) = piVar16" (pointer_expression "*(int **)(puVar11 + -0xa8)" * (cast_expression "(int **)(puVar11 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xa8)" ( (binary_expression "puVar11 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xac)" ( (binary_expression "puVar11 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar11 + -0xb8) = pcVar38;" (assignment_expression "*(code **)(puVar11 + -0xb8) = pcVar38" (pointer_expression "*(code **)(puVar11 + -0xb8)" * (cast_expression "(code **)(puVar11 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xb8)" ( (binary_expression "puVar11 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0xa4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar11 + -0xa4) = uVar27" (pointer_expression "*(undefined4 *)(puVar11 + -0xa4)" * (cast_expression "(undefined4 *)(puVar11 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xa4)" ( (binary_expression "puVar11 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar10 == '\0')" ( (binary_expression "*pcVar10 == '\0'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" { (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x65990);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar41 + 0x65990)" * (cast_expression "(code **)(pcVar41 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar41 + 0x65990)" ( (binary_expression "pcVar41 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);" (assignment_expression "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar41 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar41 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar41 + 0x6560c)" ( (binary_expression "pcVar41 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar10 = '\x01';" (assignment_expression "*pcVar10 = '\x01'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar38)(uVar27);" (call_expression "(*pcVar38)(uVar27)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(uVar27)" ( identifier ))) ;) (expression_statement "pcVar38 = *(code **)(puVar11 + -0xb8);" (assignment_expression "pcVar38 = *(code **)(puVar11 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar11 + -0xb8)" * (cast_expression "(code **)(puVar11 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xb8)" ( (binary_expression "puVar11 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar34 = pEVar6;" (assignment_expression "pEVar34 = pEVar6" identifier = identifier) ;) (if_statement "if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" if (parenthesized_expression "((int)pEVar6 < 0)" ( (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar6" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar6" - (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" identifier = (call_expression "(**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar38 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar38 + -0x7f7c)" * (cast_expression "(code **)(pcVar38 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7f7c)" ( (binary_expression "pcVar38 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar38 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar38 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + -0x7dc4)" ( (binary_expression "pcVar38 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar34 << 5" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" if (parenthesized_expression "((int)pEVar6 < 0)" ( (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" { (expression_statement "iVar13 = -*(int *)(iVar18 + 4);" (assignment_expression "iVar13 = -*(int *)(iVar18 + 4)" identifier = (unary_expression "-*(int *)(iVar18 + 4)" - (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar18 + 4) = iVar13;" (assignment_expression "*(int *)(iVar18 + 4) = iVar13" (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar13;" return identifier ;) (labeled_statement "LAB_00031bcc:\n  iVar15 = iVar15 + -1;" statement_identifier : (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar15 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar44 = *puVar14;" (assignment_expression "uVar44 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (uVar44 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar44 == 0)" ( (binary_expression "uVar44 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar14 = puVar14 + -1;" (assignment_expression "puVar14 = puVar14 + -1" identifier = (binary_expression "puVar14 + -1" identifier + number_literal)) ;) (if_statement "if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar19 % uVar44 == 0)" ( (binary_expression "uVar19 % uVar44 == 0" (binary_expression "uVar19 % uVar44" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" identifier = identifier) ;) (expression_statement "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);" (assignment_expression "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" ( (pointer_expression "**(code **)(iVar13 + -0x7b80)" * (pointer_expression "*(code **)(iVar13 + -0x7b80)" * (cast_expression "(code **)(iVar13 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b80)" ( (binary_expression "iVar13 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar35)" ( identifier )))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" identifier = (pointer_expression "*(int *)(puVar11 + -0x90)" * (cast_expression "(int *)(puVar11 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x90)" ( (binary_expression "puVar11 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar6 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c20))" ( (pointer_expression "**(code **)(iVar15 + -0x7c20)" * (pointer_expression "*(code **)(iVar15 + -0x7c20)" * (cast_expression "(code **)(iVar15 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c20)" ( (binary_expression "iVar15 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" * (cast_expression "(int *)(iVar15 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x7fd4)" ( (binary_expression "iVar15 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar40 = 1;" statement_identifier : (expression_statement "iVar40 = 1;" (assignment_expression "iVar40 = 1" identifier = number_literal) ;)) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" statement_identifier : (expression_statement "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" (assignment_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29" (pointer_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68)" * (cast_expression "(uint *)(puVar11 + iVar15 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + iVar15 * 4 + -0x68)" ( (binary_expression "puVar11 + iVar15 * 4 + -0x68" (binary_expression "puVar11 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar44 = uVar29 + 2;" statement_identifier : (expression_statement "uVar44 = uVar29 + 2;" (assignment_expression "uVar44 = uVar29 + 2" identifier = (binary_expression "uVar29 + 2" identifier + number_literal)) ;)) (expression_statement "iVar18 = (uint)(uVar44 < uVar29) + iVar18;" (assignment_expression "iVar18 = (uint)(uVar44 < uVar29) + iVar18" identifier = (binary_expression "(uint)(uVar44 < uVar29) + iVar18" (call_expression "(uint)(uVar44 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < uVar29)" ( (binary_expression "uVar44 < uVar29" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" identifier = identifier) ;) (expression_statement "iVar15 = iVar40;" (assignment_expression "iVar15 = iVar40" identifier = identifier) ;) (if_statement "if (uVar22 <= uVar44) goto LAB_00031a64;" if (parenthesized_expression "(uVar22 <= uVar44)" ( (binary_expression "uVar22 <= uVar44" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) & (field_expression IDENT -> field_identifier)) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier))) )))) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 * (abstract_pointer_declarator *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_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 ( IDENT )) (argument_list ( (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) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) >= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) >= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (field_expression IDENT -> field_identifier) [ (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) )) - LIT) ]))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_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 = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (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) )))) , 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) % IDENT) << LIT) | LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - LIT) )))) , (binary_expression IDENT < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) % IDENT) << LIT) | LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) ))) <= IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) ^ LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression IDENT <= IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) < LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (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 = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (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 ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (field_expression IDENT -> field_identifier) [ (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) - LIT) ])))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )) << LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * 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) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)) * LIT)) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) + (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) * 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) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)) * LIT)) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) )))) = IDENT) ;) }))) })) }) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) }) while (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) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < (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) )))))) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < (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) )))))) ))) )) (compound_statement { (labeled_statement 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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_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 IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (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) ))))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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 * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_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 IDENT + LIT) )))) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) - LIT) ))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , 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 = IDENT) ;) (labeled_statement 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) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ))) ;) (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 (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) })))) }))) (labeled_statement 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 = (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 != (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement 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) ))))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (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 = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 = (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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) / IDENT) + LIT) )) * LIT)) ;) (expression_statement (assignment_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 { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression IDENT * LIT)) + LIT) ))))) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) ))) | LIT) )) / LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ( IDENT , IDENT , LIT , 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 = (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 , 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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) ))) )) ))) )) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / IDENT) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ( IDENT , IDENT , 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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (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 * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT )))) ;)) (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 = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (labeled_statement 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 = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_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 *)) ) 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" (primitive_type "int") (function_declarator "FUN_000306c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" (identifier "FUN_000306c8") (parameter_list "(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" (( "(") (parameter_declaration "Elf32_Ehdr *param_1" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "Elf32_Ehdr *param_3" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "Elf32_Ehdr *param_5" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "Elf32_Ehdr *param_6" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined1 *puVar3;\n  undefined4 *puVar4;\n  Elf32_Ehdr *pEVar5;\n  Elf32_Ehdr *pEVar6;\n  int *piVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  undefined1 *puVar11;\n  Elf32_Ehdr *pEVar12;\n  int iVar13;\n  uint *puVar14;\n  int iVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  int iVar18;\n  uint uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined1 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *in_t1;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  uint uVar29;\n  undefined1 *puVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  int *piVar33;\n  Elf32_Ehdr *pEVar34;\n  uint *puVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  int iVar40;\n  code *pcVar41;\n  code *pcVar42;\n  uint uVar43;\n  uint uVar44;\n  undefined8 uVar45;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;\n  puVar30 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }\n  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }\n  *(undefined1 **)(puVar30 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;\n  pEVar20 = param_3;\n  pEVar28 = param_5;\n  FUN_00030430(pEVar31);\n  pEVar32 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }\n  piVar16 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }\n  if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }\n  pcVar41 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  puVar37 = puVar36 + 0x6e770;\n  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);\n  puVar11 = puVar30 + -0xa0;\n  puVar3 = puVar30 + -0xa0;\n  puVar39 = puVar30 + -0xa0;\n  *(undefined1 **)(puVar30 + -8) = auStack_58;\n  *(undefined4 **)(puVar30 + -0x20) = param_2;\n  *(code **)(puVar30 + -4) = pcVar41;\n  *(undefined4 **)(puVar30 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;\n  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;\n  *(undefined **)(puVar30 + -0x88) = puVar37;\n  *(int **)(puVar30 + -0x54) = piVar16;\n  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;\n  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;\n  uVar19 = param_4;\n  if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }\n  if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(puVar37 + -0x7b70);\n  uVar27 = 0x3153c;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6db00;\n  puVar11 = puVar3 + -0x38;\n  *(uint *)(puVar3 + -0x10) = uVar19;\n  piVar7 = *(int **)(pcVar41 + 0x66000);\n  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar27;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;\n  *(code **)(puVar3 + -0x28) = pcVar38;\n  *(int *)(puVar3 + -0x1c) = *piVar7;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }\n  pcVar41 = *(code **)(pcVar38 + -0x7b70);\n  pcVar42 = __gmpz_probab_prime_p;\n  (*pcVar41)();\n  pcVar38 = *(code **)(pcVar41 + 0x659a8);\n  *(int **)(puVar11 + -0x24) = piVar16;\n  *(int **)(puVar11 + -0x20) = piVar7;\n  piVar16 = *(int **)(pcVar41 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;\n  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;\n  pEVar6 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;\n  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;\n  *(code **)(puVar11 + -4) = pcVar42;\n  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;\n  *(int *)(puVar11 + -0x2c) = *piVar16;\n  iVar13 = (*pcVar38)();\n  puVar35 = (uint *)piVar33[2];\n  iVar15 = *(int *)(puVar11 + -0x90);\n  pEVar34 = (Elf32_Ehdr *)piVar33[1];\n  uVar19 = *puVar35;\n  if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }\n  if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }\n  iVar13 = 0;\nLAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);\n  if (iVar18 == *piVar16) {\n    return iVar13;\n  }\nLAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);\n  uVar27 = 0x31c64;\n  (*pcVar41)();\n  pcVar38 = pcVar41 + 0x6d3d0;\n  pcVar10 = *(char **)(pcVar41 + 0x65518);\n  *(int **)(puVar11 + -0xa8) = piVar16;\n  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;\n  *(code **)(puVar11 + -0xb8) = pcVar38;\n  *(undefined4 *)(puVar11 + -0xa4) = uVar27;\n  if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }\n  pEVar34 = pEVar6;\n  if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }\n  iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }\n  return iVar13;\nLAB_00031bcc:\n  iVar15 = iVar15 + -1;\n  if (iVar15 == -1) goto code_r0x00031bd8;\n  uVar44 = *puVar14;\n  if (uVar44 == 0) {\n    trap(7);\n  }\n  puVar14 = puVar14 + -1;\n  if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar40 = 1;\n  iVar15 = 0;\n  uVar19 = uVar29;\nLAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;\nLAB_00031a4c:\n  uVar44 = uVar29 + 2;\n  iVar18 = (uint)(uVar44 < uVar29) + iVar18;\n  uVar29 = uVar44;\n  iVar15 = iVar40;\n  if (uVar22 <= uVar44) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "Elf32_Ehdr *pEVar5;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar5" (* "*") (identifier "pEVar5")) (; ";")) (declaration "Elf32_Ehdr *pEVar6;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar6" (* "*") (identifier "pEVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "Elf32_Ehdr *pEVar12;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar12" (* "*") (identifier "pEVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "Elf32_Ehdr *pEVar20;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar20" (* "*") (identifier "pEVar20")) (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "undefined1 *puVar25;" (type_identifier "undefined1") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined4 uVar26;" (type_identifier "undefined4") (identifier "uVar26") (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "Elf32_Ehdr *pEVar28;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar28" (* "*") (identifier "pEVar28")) (; ";")) (declaration "Elf32_Ehdr *in_t1;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_t1" (* "*") (identifier "in_t1")) (; ";")) (declaration "uint in_t2;" (type_identifier "uint") (identifier "in_t2") (; ";")) (declaration "Elf32_Ehdr *in_t3;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_t3" (* "*") (identifier "in_t3")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "undefined1 *puVar30;" (type_identifier "undefined1") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "Elf32_Ehdr *pEVar31;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar31" (* "*") (identifier "pEVar31")) (; ";")) (declaration "Elf32_Ehdr *pEVar32;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar32" (* "*") (identifier "pEVar32")) (; ";")) (declaration "int *piVar33;" (primitive_type "int") (pointer_declarator "*piVar33" (* "*") (identifier "piVar33")) (; ";")) (declaration "Elf32_Ehdr *pEVar34;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar34" (* "*") (identifier "pEVar34")) (; ";")) (declaration "uint *puVar35;" (type_identifier "uint") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "undefined *puVar36;" (type_identifier "undefined") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "undefined *puVar37;" (type_identifier "undefined") (pointer_declarator "*puVar37" (* "*") (identifier "puVar37")) (; ";")) (declaration "code *pcVar38;" (type_identifier "code") (pointer_declarator "*pcVar38" (* "*") (identifier "pcVar38")) (; ";")) (declaration "undefined1 *puVar39;" (type_identifier "undefined1") (pointer_declarator "*puVar39" (* "*") (identifier "puVar39")) (; ";")) (declaration "int iVar40;" (primitive_type "int") (identifier "iVar40") (; ";")) (declaration "code *pcVar41;" (type_identifier "code") (pointer_declarator "*pcVar41" (* "*") (identifier "pcVar41")) (; ";")) (declaration "code *pcVar42;" (type_identifier "code") (pointer_declarator "*pcVar42" (* "*") (identifier "pcVar42")) (; ";")) (declaration "uint uVar43;" (type_identifier "uint") (identifier "uVar43") (; ";")) (declaration "uint uVar44;" (type_identifier "uint") (identifier "uVar44") (; ";")) (declaration "undefined8 uVar45;" (type_identifier "undefined8") (identifier "uVar45") (; ";")) (declaration "undefined1 auStack_58 [24];" (type_identifier "undefined1") (array_declarator "auStack_58 [24]" (identifier "auStack_58") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "int *local_30;" (primitive_type "int") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_00097540" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00097540"))) (; ";")) (expression_statement "puVar30 = auStack_58;" (assignment_expression "puVar30 = auStack_58" (identifier "puVar30") (= "=") (identifier "auStack_58")) (; ";")) (expression_statement "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4)" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)((int)param_3 * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 * 4)" (( "(") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_30 = (int *)0x0;" (assignment_expression "local_30 = (int *)0x0" (identifier "local_30") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00097540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00097540")))) (; ";")) (if_statement "if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }\n  else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" (if "if") (parenthesized_expression "(pEVar34 < (Elf32_Ehdr *)0x7f01)" (( "(") (binary_expression "pEVar34 < (Elf32_Ehdr *)0x7f01" (identifier "pEVar34") (< "<") (cast_expression "(Elf32_Ehdr *)0x7f01" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar30 = auStack_58 + iVar13;\n    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);\n  }" ({ "{") (expression_statement "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" (- "-") (parenthesized_expression "((uint)&pEVar34->e_ident_osabi & 0xfffffff8)" (( "(") (binary_expression "(uint)&pEVar34->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar34->e_ident_osabi" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (& "&") (field_expression "pEVar34->e_ident_osabi" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_osabi"))) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar30 = auStack_58 + iVar13;" (assignment_expression "puVar30 = auStack_58 + iVar13" (identifier "puVar30") (= "=") (binary_expression "auStack_58 + iVar13" (identifier "auStack_58") (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar13)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0xffffffc0 + iVar13)" (( "(") (binary_expression "&stack0xffffffc0 + iVar13" (pointer_expression "&stack0xffffffc0" (& "&") (identifier "stack0xffffffc0")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" (else "else") (compound_statement "{\n    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);\n  }" ({ "{") (expression_statement "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30,pEVar34)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "pEVar34") () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4" (identifier "uVar19") (= "=") (binary_expression "(int)((int)param_3 + (1 - (int)param_5)) * 4" (cast_expression "(int)((int)param_3 + (1 - (int)param_5))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_3 + (1 - (int)param_5))" (( "(") (binary_expression "(int)param_3 + (1 - (int)param_5)" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "(1 - (int)param_5)" (( "(") (binary_expression "1 - (int)param_5" (number_literal "1") (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")"))) () ")"))) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar19 < 0x7f01) {\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" (if "if") (parenthesized_expression "(uVar19 < 0x7f01)" (( "(") (binary_expression "uVar19 < 0x7f01" (identifier "uVar19") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar13 = -(uVar19 + 7 & 0xfffffff8);\n    puVar3 = puVar30 + iVar13 + 0x18;\n    puVar30 = puVar30 + iVar13;\n  }" ({ "{") (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-(uVar19 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" (identifier "uVar19") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar30 + iVar13 + 0x18;" (assignment_expression "puVar3 = puVar30 + iVar13 + 0x18" (identifier "puVar3") (= "=") (binary_expression "puVar30 + iVar13 + 0x18" (binary_expression "puVar30 + iVar13" (identifier "puVar30") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar30 = puVar30 + iVar13;" (assignment_expression "puVar30 = puVar30 + iVar13" (identifier "puVar30") (= "=") (binary_expression "puVar30 + iVar13" (identifier "puVar30") (+ "+") (identifier "iVar13"))) (; ";")) (} "}")) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" (else "else") (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n  }" ({ "{") (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 != (Elf32_Ehdr *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar27 = *param_2;\n    if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }\n  }" ({ "{") (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar27 = *param_2;" (assignment_expression "uVar27 = *param_2" (identifier "uVar27") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }\n    else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar31->e_ident_magic_str[2] = (char)uVar27;\n      pEVar34 = pEVar31;\n    }" ({ "{") (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x18)" (( "(") (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x10)" (( "(") (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 8)" (( "(") (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27"))) (; ";")) (expression_statement "pEVar34 = pEVar31;" (assignment_expression "pEVar34 = pEVar31" (identifier "pEVar34") (= "=") (identifier "pEVar31")) (; ";")) (} "}")) (else_clause "else {\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" (else "else") (compound_statement "{\n      pEVar32 = pEVar31;\n      puVar4 = param_2 + 1;\n      do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );\n      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)uVar27;\n    }" ({ "{") (expression_statement "pEVar32 = pEVar31;" (assignment_expression "pEVar32 = pEVar31" (identifier "pEVar32") (= "=") (identifier "pEVar31")) (; ";")) (expression_statement "puVar4 = param_2 + 1;" (assignment_expression "puVar4 = param_2 + 1" (identifier "puVar4") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n        pEVar32->e_ident_magic_str[2] = (char)uVar27;\n        puVar11 = puVar11 + -1;\n        uVar27 = *puVar4;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        puVar4 = puVar4 + 1;\n      }" ({ "{") (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar32->e_ident_magic_num" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x18)" (( "(") (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar32->e_ident_magic_str[0]" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x10)" (( "(") (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar32->e_ident_magic_str[1]" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 8)" (( "(") (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27"))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar27 = *puVar4;" (assignment_expression "uVar27 = *puVar4" (identifier "uVar27") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar32->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar32->e_ident_class" (& "&") (field_expression "pEVar32->e_ident_class" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                );" (assignment_expression "pEVar34 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str\n                )" (( "(") (binary_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shentsize + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar34[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar34[-1].e_shentsize + 1" (cast_expression "(int)&pEVar34[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar34[-1].e_shentsize" (& "&") (field_expression "pEVar34[-1].e_shentsize" (subscript_expression "pEVar34[-1]" (identifier "pEVar34") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (+ "+") (cast_expression "(int)pEVar31->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")))) () ")")))) (; ";")) (expression_statement "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar34->e_ident_magic_num" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x18)" (( "(") (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->e_ident_magic_str" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x10)" (( "(") (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->e_ident_magic_str" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 8)" (( "(") (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar34->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar34->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined1 **)(puVar30 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar30 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar30 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar30 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0x14)" (( "(") (binary_expression "puVar30 + 0x14" (identifier "puVar30") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0x10)" (( "(") (binary_expression "puVar30 + 0x10" (identifier "puVar30") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" (identifier "pEVar20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pEVar28 = param_5;" (assignment_expression "pEVar28 = param_5" (identifier "pEVar28") (= "=") (identifier "param_5")) (; ";")) (expression_statement "FUN_00030430(pEVar31);" (call_expression "FUN_00030430(pEVar31)" (identifier "FUN_00030430") (argument_list "(pEVar31)" (( "(") (identifier "pEVar31") () ")"))) (; ";")) (expression_statement "pEVar32 = param_5;" (assignment_expression "pEVar32 = param_5" (identifier "pEVar32") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" (if "if") (parenthesized_expression "(param_5 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_5 != (Elf32_Ehdr *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar20 = *(Elf32_Ehdr **)pEVar31;\n    pEVar12 = param_1;\n    pEVar5 = pEVar31;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)param_1 = pEVar20;\n  }" ({ "{") (expression_statement "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);" (assignment_expression "puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)((int)&param_5[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_5[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_5[-1].e_shstrndx + 1" (cast_expression "(int)&param_5[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_5[-1].e_shstrndx" (& "&") (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" (identifier "param_5") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar31;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar31" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar31" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar31" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar31")))) (; ";")) (expression_statement "pEVar12 = param_1;" (assignment_expression "pEVar12 = param_1" (identifier "pEVar12") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pEVar5 = pEVar31;" (assignment_expression "pEVar5 = pEVar31" (identifier "pEVar5") (= "=") (identifier "pEVar31")) (; ";")) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" (if "if") (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined1 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);\n      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);\n    }" ({ "{") (do_statement "do {\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        *(Elf32_Ehdr **)pEVar12 = pEVar20;\n        puVar3 = puVar3 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;\n        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar12 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar12 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar12" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar12" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar12"))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + -1" (identifier "puVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar5->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar5->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar5->e_ident_class" (& "&") (field_expression "pEVar5->e_ident_class" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;" (assignment_expression "pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class" (identifier "pEVar12") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar12->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar12->e_ident_class" (& "&") (field_expression "pEVar12->e_ident_class" (identifier "pEVar12") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;" (assignment_expression "pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar5->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar5->e_ident_class" (& "&") (field_expression "pEVar5->e_ident_class" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined1 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4)" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)((int)param_5 * 4 + -4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_5 * 4 + -4)" (( "(") (binary_expression "(int)param_5 * 4 + -4" (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "4")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3" (binary_expression "param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&param_5[-1].e_shstrndx * 4" (cast_expression "(int)&param_5[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_5[-1].e_shstrndx" (& "&") (field_expression "param_5[-1].e_shstrndx" (subscript_expression "param_5[-1]" (identifier "param_5") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)param_1 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_1" (* "*") (cast_expression "(Elf32_Ehdr **)param_1" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1"))) (= "=") (identifier "pEVar20")) (; ";")) (} "}"))) (expression_statement "piVar16 = local_30;" (assignment_expression "piVar16 = local_30" (identifier "piVar16") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" (if "if") (parenthesized_expression "(local_30 != (int *)0x0)" (( "(") (binary_expression "local_30 != (int *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n  }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_00097614"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)pEVar6) {\n    return *(int *)pEVar6;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)pEVar6)" (( "(") (binary_expression "local_2c == *(int *)pEVar6" (identifier "local_2c") (== "==") (pointer_expression "*(int *)pEVar6" (* "*") (cast_expression "(int *)pEVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar6")))) () ")")) (compound_statement "{\n    return *(int *)pEVar6;\n  }" ({ "{") (return_statement "return *(int *)pEVar6;" (return "return") (pointer_expression "*(int *)pEVar6" (* "*") (cast_expression "(int *)pEVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar6"))) (; ";")) (} "}"))) (expression_statement "pcVar41 = __gmpz_powm_ui;" (assignment_expression "pcVar41 = __gmpz_powm_ui" (identifier "pcVar41") (= "=") (identifier "__gmpz_powm_ui")) (; ";")) (expression_statement "puVar36 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar36 = PTR___stack_chk_fail_000974d0" (identifier "puVar36") (= "=") (identifier "PTR___stack_chk_fail_000974d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000974d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000974d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar37 = puVar36 + 0x6e770;" (assignment_expression "puVar37 = puVar36 + 0x6e770" (identifier "puVar37") (= "=") (binary_expression "puVar36 + 0x6e770" (identifier "puVar36") (+ "+") (number_literal "0x6e770"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(puVar36 + 0x66c70);" (assignment_expression "puVar4 = *(undefined4 **)(puVar36 + 0x66c70)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(puVar36 + 0x66c70)" (* "*") (cast_expression "(undefined4 **)(puVar36 + 0x66c70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x66c70)" (( "(") (binary_expression "puVar36 + 0x66c70" (identifier "puVar36") (+ "+") (number_literal "0x66c70")) () ")"))))) (; ";")) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" (identifier "puVar11") (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" (identifier "puVar3") (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "puVar39 = puVar30 + -0xa0;" (assignment_expression "puVar39 = puVar30 + -0xa0" (identifier "puVar39") (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar30 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -8)" (( "(") (binary_expression "puVar30 + -8" (identifier "puVar30") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_58")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x20)" (( "(") (binary_expression "puVar30 + -0x20" (identifier "puVar30") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(code **)(puVar30 + -4) = pcVar41;" (assignment_expression "*(code **)(puVar30 + -4) = pcVar41" (pointer_expression "*(code **)(puVar30 + -4)" (* "*") (cast_expression "(code **)(puVar30 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -4)" (( "(") (binary_expression "puVar30 + -4" (identifier "puVar30") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar41")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar30 + -0x58)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x58)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0xc)" (( "(") (binary_expression "puVar30 + -0xc" (identifier "puVar30") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x10)" (( "(") (binary_expression "puVar30 + -0x10" (identifier "puVar30") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x14)" (( "(") (binary_expression "puVar30 + -0x14" (identifier "puVar30") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x18)" (( "(") (binary_expression "puVar30 + -0x18" (identifier "puVar30") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar6")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x1c)" (( "(") (binary_expression "puVar30 + -0x1c" (identifier "puVar30") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x24)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x24)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x24)" (( "(") (binary_expression "puVar30 + -0x24" (identifier "puVar30") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "pEVar31")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x28)" (( "(") (binary_expression "puVar30 + -0x28" (identifier "puVar30") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined **)(puVar30 + -0x88) = puVar37;" (assignment_expression "*(undefined **)(puVar30 + -0x88) = puVar37" (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")")))) (= "=") (identifier "puVar37")) (; ";")) (expression_statement "*(int **)(puVar30 + -0x54) = piVar16;" (assignment_expression "*(int **)(puVar30 + -0x54) = piVar16" (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x5c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x5c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x68)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x68)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x2c)" (( "(") (binary_expression "puVar30 + -0x2c" (identifier "puVar30") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" (identifier "uVar19") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_4 < 0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" (if "if") (parenthesized_expression "(param_4 < 0x14)" (( "(") (binary_expression "param_4 < 0x14" (identifier "param_4") (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;\n    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);\n    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));\n    uVar22 = uVar44;\n    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }\n    uVar22 = uVar29 << 0x10 | uVar22;\n    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);\n    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }\n    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n    uVar29 = uVar22;\n    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }\n    *(uint *)(puVar30 + -0x44) = uVar29;\n    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);\n    pEVar32 = pEVar28;\n    if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }\n    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar22 = *(int *)(puVar30 + -0x50) + 4;\n    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);\n    *(uint *)(puVar30 + -0x70) = uVar22;\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    iVar13 = *(int *)(puVar30 + -100);\n    uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar6;\n    FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);\n    puVar37 = *(undefined **)(puVar30 + -0x88);\n    pEVar32 = pEVar34;\n    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }\n    puVar4 = *(undefined4 **)(puVar30 + -100);\n    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar31 = param_6;\n    puVar11 = puVar25;\n    if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar31 = pEVar20;\n    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);\n    iVar13 = 0x1f - (int)param_1;\n    param_3 = pEVar32;\n    if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }\nLAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;\n    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);\n    piVar7 = *(int **)(puVar30 + -0x58);\n    if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" ({ "{") (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" (identifier "pEVar5") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)&pEVar28->e_ident_abiversion" (* "*") (cast_expression "(undefined4 *)&pEVar28->e_ident_abiversion" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_abiversion" (& "&") (field_expression "pEVar28->e_ident_abiversion" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_abiversion")))))) (; ";")) (expression_statement "pEVar34 = pEVar5;" (assignment_expression "pEVar34 = pEVar5" (identifier "pEVar34") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" (if "if") (parenthesized_expression "((int)pEVar5 < 0)" (( "(") (binary_expression "(int)pEVar5 < 0" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" ({ "{") (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar5" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar5" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar5" (- "-") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" (if "if") (parenthesized_expression "(pEVar5 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar5 == (Elf32_Ehdr *)0x0" (identifier "pEVar5") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar22 = param_4;\n      uVar45 = (**(code **)(puVar36 + 0x66d0c))();\nLAB_00031228:\n      uVar29 = (uint)uVar45;\n      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);\n      puVar3 = puVar11;\n    }" ({ "{") (expression_statement "uVar22 = param_4;" (assignment_expression "uVar22 = param_4" (identifier "uVar22") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x66d0c))();" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x66d0c))()" (identifier "uVar45") (= "=") (call_expression "(**(code **)(puVar36 + 0x66d0c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x66d0c))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x66d0c)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x66d0c)" (* "*") (cast_expression "(code **)(puVar36 + 0x66d0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x66d0c)" (( "(") (binary_expression "puVar36 + 0x66d0c" (identifier "puVar36") (+ "+") (number_literal "0x66d0c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_00031228:\n      uVar29 = (uint)uVar45;" (statement_identifier "LAB_00031228") (: ":") (expression_statement "uVar29 = (uint)uVar45;" (assignment_expression "uVar29 = (uint)uVar45" (identifier "uVar29") (= "=") (cast_expression "(uint)uVar45" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar45"))) (; ";"))) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1)" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar45")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" (identifier "puVar3") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" (else "else") (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar30 + -0x40) = 0;\n      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);\n      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];\n      *(int *)(puVar30 + -0x6c) = iVar13;\n      puVar11 = puVar30 + -0xa0;\n      if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }\n      uVar22 = (uint)pEVar20 >> 0x10;\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      uVar44 = ~(uint)pEVar20 / uVar22;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);\n      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);\n      uVar29 = uVar44;\n      in_t1 = pEVar28;\n      puVar3 = puVar11;\n      if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }\n    }" ({ "{") (expression_statement "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar34 * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar34 * 4)" (( "(") (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (param_4 == 0) {\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar22 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }\n        piVar16 = *(int **)(puVar30 + -0x54);\n        piVar16[1] = uVar22;\n        *(undefined4 *)piVar16[2] = 1;\n        puVar3 = puVar30 + -0xa0;\n        goto LAB_00030c64;\n      }" ({ "{") (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" (identifier "uVar22") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" (if "if") (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" (identifier "pEVar34") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);\n        }" ({ "{") (expression_statement "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);" (assignment_expression "uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1)" (identifier "uVar22") (= "=") (call_expression "(uint)(**(int **)(puVar30 + -0x4c) != 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(**(int **)(puVar30 + -0x4c) != 1)" (( "(") (binary_expression "**(int **)(puVar30 + -0x4c) != 1" (pointer_expression "**(int **)(puVar30 + -0x4c)" (* "*") (pointer_expression "*(int **)(puVar30 + -0x4c)" (* "*") (cast_expression "(int **)(puVar30 + -0x4c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))) (!= "!=") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "piVar16[1] = uVar22;" (assignment_expression "piVar16[1] = uVar22" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "*(undefined4 *)piVar16[2] = 1;" (assignment_expression "*(undefined4 *)piVar16[2] = 1" (pointer_expression "*(undefined4 *)piVar16[2]" (* "*") (cast_expression "(undefined4 *)piVar16[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar3 = puVar30 + -0xa0;" (assignment_expression "puVar3 = puVar30 + -0xa0" (identifier "puVar3") (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar30 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;" (assignment_expression "*(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum" (pointer_expression "*(word **)(puVar30 + -0x50)" (* "*") (cast_expression "(word **)(puVar30 + -0x50)" (( "(") (type_descriptor "word **" (type_identifier "word") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (pointer_expression "&pEVar31[-1].e_shnum" (& "&") (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" (identifier "pEVar31") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum")))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum)" (( "(") (binary_expression "*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum" (pointer_expression "*(int *)(puVar30 + -0x4c)" (* "*") (cast_expression "(int *)(puVar30 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (cast_expression "(int)&pEVar31[-1].e_shnum" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar31[-1].e_shnum" (& "&") (field_expression "pEVar31[-1].e_shnum" (subscript_expression "pEVar31[-1]" (identifier "pEVar31") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) () ")"))))) (; ";")) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" (if "if") (parenthesized_expression "(pEVar20 < &Elf32_Ehdr_00010000)" (( "(") (binary_expression "pEVar20 < &Elf32_Ehdr_00010000" (identifier "pEVar20") (< "<") (pointer_expression "&Elf32_Ehdr_00010000" (& "&") (identifier "Elf32_Ehdr_00010000"))) () ")")) (compound_statement "{\n        iVar13 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }\n      }" ({ "{") (expression_statement "iVar13 = 0x20;" (assignment_expression "iVar13 = 0x20" (identifier "iVar13") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar13 = 0x18;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar20)" (( "(") (binary_expression "(Elf32_Ehdr *)0xff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff")) (< "<") (identifier "pEVar20")) () ")")) (compound_statement "{\n          iVar13 = 0x18;\n        }" ({ "{") (expression_statement "iVar13 = 0x18;" (assignment_expression "iVar13 = 0x18" (identifier "iVar13") (= "=") (number_literal "0x18")) (; ";")) (} "}"))) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" (identifier "iVar15") (= "=") (number_literal "9")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar15 = 1;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar20)" (( "(") (binary_expression "(Elf32_Ehdr *)0xff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff")) (>= ">=") (identifier "pEVar20")) () ")")) (compound_statement "{\n          iVar15 = 1;\n        }" ({ "{") (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" (else "else") (compound_statement "{\n        iVar13 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }\n      }" ({ "{") (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" (identifier "iVar13") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar13 = 8;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar20)" (( "(") (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff")) (< "<") (identifier "pEVar20")) () ")")) (compound_statement "{\n          iVar13 = 8;\n        }" ({ "{") (expression_statement "iVar13 = 8;" (assignment_expression "iVar13 = 8" (identifier "iVar13") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "iVar15 = 0x19;" (assignment_expression "iVar15 = 0x19" (identifier "iVar15") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar15 = 0x11;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar20)" (( "(") (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar20" (cast_expression "(Elf32_Ehdr *)0xffffff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff")) (>= ">=") (identifier "pEVar20")) () ")")) (compound_statement "{\n          iVar15 = 0x11;\n        }" ({ "{") (expression_statement "iVar15 = 0x11;" (assignment_expression "iVar15 = 0x11" (identifier "iVar15") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x668bc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x668bc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x668bc)" (( "(") (binary_expression "puVar36 + 0x668bc" (identifier "puVar36") (+ "+") (number_literal "0x668bc")) () ")"))))) (; ";")) (expression_statement "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];" (assignment_expression "iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (identifier "iVar13") (= "=") (binary_expression "iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (identifier "iVar13") (- "-") (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1]" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "((uint)pEVar20 >> iVar15) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar15)" (( "(") (binary_expression "(uint)pEVar20 >> iVar15" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (identifier "iVar15")) () ")")) (- "-") (number_literal "1")) (] "]")))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x6c) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x6c) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x6c)" (* "*") (cast_expression "(int *)(puVar30 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x6c)" (( "(") (binary_expression "puVar30 + -0x6c" (identifier "puVar30") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "puVar11 = puVar30 + -0xa0;" (assignment_expression "puVar11 = puVar30 + -0xa0" (identifier "puVar11") (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (if_statement "if (iVar13 != 0) {\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);\n        puVar11 = puVar39;\n      }" ({ "{") (if_statement "if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }\n        else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n          puVar39 = puVar30 + iVar13 + -0xa0;\n          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);\n        }" ({ "{") (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar39 = puVar30 + iVar13 + -0xa0;" (assignment_expression "puVar39 = puVar30 + iVar13 + -0xa0" (identifier "puVar39") (= "=") (binary_expression "puVar30 + iVar13 + -0xa0" (binary_expression "puVar30 + iVar13" (identifier "puVar30") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar30 + iVar13 + -0x88)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + iVar13 + -0x88)" (( "(") (binary_expression "puVar30 + iVar13 + -0x88" (binary_expression "puVar30 + iVar13" (identifier "puVar30") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-0x88")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" (else "else") (compound_statement "{\n          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n        }" ({ "{") (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar36 + 0x66a20))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x66a20)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x66a20)" (* "*") (cast_expression "(code **)(puVar36 + 0x66a20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x66a20)" (( "(") (binary_expression "puVar36 + 0x66a20" (identifier "puVar36") (+ "+") (number_literal "0x66a20")) () ")"))))) () ")")) (argument_list "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7ad4)" (* "*") (cast_expression "(code **)(puVar37 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7ad4)" (( "(") (binary_expression "puVar37 + -0x7ad4" (identifier "puVar37") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)\n                  )" (( "(") (identifier "pEVar31") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar34") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x6c)" (( "(") (binary_expression "puVar30 + -0x6c" (identifier "puVar30") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x4c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x4c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (identifier "pEVar31")) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (* "*") (cast_expression "(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (( "(") (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "puVar11 = puVar39;" (assignment_expression "puVar11 = puVar39" (identifier "puVar11") (= "=") (identifier "puVar39")) (; ";")) (} "}"))) (if_statement "if (pEVar34 == (Elf32_Ehdr *)0x1) {\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" (if "if") (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar34 == (Elf32_Ehdr *)0x1" (identifier "pEVar34") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        pEVar28 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)0x0" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" (else "else") (compound_statement "{\n        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);\n      }" ({ "{") (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4" (binary_expression "*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50)" (pointer_expression "*(int *)(puVar30 + -0x4c)" (* "*") (cast_expression "(int *)(puVar30 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar22 = (uint)pEVar20 >> 0x10;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x10" (identifier "uVar22") (= "=") (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x10"))) (; ";")) (if_statement "if (uVar22 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar44 = ~(uint)pEVar20 / uVar22;" (assignment_expression "uVar44 = ~(uint)pEVar20 / uVar22" (identifier "uVar44") (= "=") (binary_expression "~(uint)pEVar20 / uVar22" (unary_expression "~(uint)pEVar20" (~ "~") (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20"))) (/ "/") (identifier "uVar22"))) (; ";")) (expression_statement "in_t2 = (uint)pEVar20 & 0xffff;" (assignment_expression "in_t2 = (uint)pEVar20 & 0xffff" (identifier "in_t2") (= "=") (binary_expression "(uint)pEVar20 & 0xffff" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (& "&") (number_literal "0xffff"))) (; ";")) (expression_statement "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44)" (identifier "in_t3") (= "=") (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar44)" (( "(") (binary_expression "in_t2 * uVar44" (identifier "in_t2") (* "*") (identifier "uVar44")) () ")")))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff)" (( "(") (binary_expression "~(uint)pEVar20 % uVar22 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % uVar22 << 0x10" (binary_expression "~(uint)pEVar20 % uVar22" (unary_expression "~(uint)pEVar20" (~ "~") (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20"))) (% "%") (identifier "uVar22")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" (identifier "uVar29") (= "=") (identifier "uVar44")) (; ";")) (expression_statement "in_t1 = pEVar28;" (assignment_expression "in_t1 = pEVar28" (identifier "in_t1") (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar3 = puVar11;" (assignment_expression "puVar3 = puVar11" (identifier "puVar3") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (pEVar6 < in_t3) {\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" (if "if") (parenthesized_expression "(pEVar6 < in_t3)" (( "(") (binary_expression "pEVar6 < in_t3" (identifier "pEVar6") (< "<") (identifier "in_t3")) () ")")) (compound_statement "{\n        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));\n        uVar29 = uVar44 - 1;\n        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;\n      }" ({ "{") (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar29 = uVar44 - 1;" (assignment_expression "uVar29 = uVar44 - 1" (identifier "uVar29") (= "=") (binary_expression "uVar44 - 1" (identifier "uVar44") (- "-") (number_literal "1"))) (; ";")) (if_statement "if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))\n        goto LAB_00031228;" (if "if") (parenthesized_expression "((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))" (( "(") (binary_expression "(pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar6)" (( "(") (binary_expression "pEVar20 <= pEVar6" (identifier "pEVar20") (<= "<=") (identifier "pEVar6")) () ")")) (&& "&&") (parenthesized_expression "(uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3)" (( "(") (comma_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3" (assignment_expression "uVar45 = CONCAT44(pEVar6,uVar44 - 2)" (identifier "uVar45") (= "=") (call_expression "CONCAT44(pEVar6,uVar44 - 2)" (identifier "CONCAT44") (argument_list "(pEVar6,uVar44 - 2)" (( "(") (identifier "pEVar6") (, ",") (binary_expression "uVar44 - 2" (identifier "uVar44") (- "-") (number_literal "2")) () ")")))) (, ",") (binary_expression "pEVar6 < in_t3" (identifier "pEVar6") (< "<") (identifier "in_t3"))) () ")"))) () ")")) (goto_statement "goto LAB_00031228;" (goto "goto") (statement_identifier "LAB_00031228") (; ";"))) (} "}"))) (} "}")))) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;" (assignment_expression "uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22" (identifier "uVar44") (= "=") (binary_expression "(uint)((int)pEVar6 - (int)in_t3) / uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar6 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (/ "/") (identifier "uVar22"))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff)" (( "(") (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10" (binary_expression "(uint)((int)pEVar6 - (int)in_t3) % uVar22" (call_expression "(uint)((int)pEVar6 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar6 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar6 - (int)in_t3" (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (% "%") (identifier "uVar22")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2)" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar20->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar20->e_ident_magic_str + -2" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" (identifier "uVar22") (= "=") (identifier "uVar44")) (; ";")) (if_statement "if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {\n      uVar22 = uVar44 - 1;\n    }" (if "if") (parenthesized_expression "((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))))" (( "(") (binary_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&\n       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" (parenthesized_expression "(pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44))" (( "(") (binary_expression "pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)" (identifier "pEVar6") (< "<") (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar44)" (( "(") (binary_expression "in_t2 * uVar44" (identifier "in_t2") (* "*") (identifier "uVar44")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))" (( "(") (parenthesized_expression "(pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32))" (( "(") (binary_expression "pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" (binary_expression "pEVar32 < pEVar20" (identifier "pEVar32") (< "<") (identifier "pEVar20")) (|| "||") (parenthesized_expression "(uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)" (( "(") (comma_expression "uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (assignment_expression "uVar22 = uVar44 - 2" (identifier "uVar22") (= "=") (binary_expression "uVar44 - 2" (identifier "uVar44") (- "-") (number_literal "2"))) (, ",") (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar44)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar44)" (( "(") (binary_expression "in_t2 * uVar44" (identifier "in_t2") (* "*") (identifier "uVar44")) () ")"))) (<= "<=") (identifier "pEVar32"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar22 = uVar44 - 1;\n    }" ({ "{") (expression_statement "uVar22 = uVar44 - 1;" (assignment_expression "uVar22 = uVar44 - 1" (identifier "uVar22") (= "=") (binary_expression "uVar44 - 1" (identifier "uVar44") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar22 = uVar29 << 0x10 | uVar22;" (assignment_expression "uVar22 = uVar29 << 0x10 | uVar22" (identifier "uVar22") (= "=") (binary_expression "uVar29 << 0x10 | uVar22" (binary_expression "uVar29 << 0x10" (identifier "uVar29") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar22"))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1)" (( "(") (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar20 * uVar22" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (* "*") (identifier "uVar22"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar22")) (* "*") (call_expression "ZEXT48(in_t1)" (identifier "ZEXT48") (argument_list "(in_t1)" (( "(") (identifier "in_t1") () ")"))))) (; ";")) (if_statement "if (pEVar6 < pEVar28) {\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" (if "if") (parenthesized_expression "(pEVar6 < pEVar28)" (( "(") (binary_expression "pEVar6 < pEVar28" (identifier "pEVar6") (< "<") (identifier "pEVar28")) () ")")) (compound_statement "{\n      uVar29 = pEVar6 < pEVar20 ^ 1;\n      pEVar32 = pEVar20;\n      if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }\n      uVar22 = (uVar22 - 1) - uVar29;\n      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);\n    }" ({ "{") (expression_statement "uVar29 = pEVar6 < pEVar20 ^ 1;" (assignment_expression "uVar29 = pEVar6 < pEVar20 ^ 1" (identifier "uVar29") (= "=") (binary_expression "pEVar6 < pEVar20 ^ 1" (binary_expression "pEVar6 < pEVar20" (identifier "pEVar6") (< "<") (identifier "pEVar20")) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" (identifier "pEVar32") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if (uVar29 == 0) {\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" (if "if") (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)0x0" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "uVar22 = (uVar22 - 1) - uVar29;" (assignment_expression "uVar22 = (uVar22 - 1) - uVar29" (identifier "uVar22") (= "=") (binary_expression "(uVar22 - 1) - uVar29" (parenthesized_expression "(uVar22 - 1)" (( "(") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1")) () ")")) (- "-") (identifier "uVar29"))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20))" (( "(") (binary_expression "(int)pEVar6 + (-(int)pEVar32 - (int)pEVar20)" (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6")) (+ "+") (parenthesized_expression "(-(int)pEVar32 - (int)pEVar20)" (( "(") (binary_expression "-(int)pEVar32 - (int)pEVar20" (unary_expression "-(int)pEVar32" (- "-") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))) (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))) () ")"))) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar22 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar22" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar22")) (* "*") (call_expression "ZEXT48(in_t1)" (identifier "ZEXT48") (argument_list "(in_t1)" (( "(") (identifier "in_t1") () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar6->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar6->e_ident_magic_str + -2" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar29 = uVar22;" (assignment_expression "uVar29 = uVar22" (identifier "uVar29") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar29 = uVar22 - 2;\n    }" (if "if") (parenthesized_expression "(((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))))" (( "(") (binary_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&\n       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6))" (( "(") (binary_expression "(pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" (parenthesized_expression "(pEVar6 < pEVar32)" (( "(") (binary_expression "pEVar6 < pEVar32" (identifier "pEVar6") (< "<") (identifier "pEVar32")) () ")")) (&& "&&") (parenthesized_expression "(uVar29 = uVar22 - 1, pEVar20 <= pEVar6)" (( "(") (comma_expression "uVar29 = uVar22 - 1, pEVar20 <= pEVar6" (assignment_expression "uVar29 = uVar22 - 1" (identifier "uVar29") (= "=") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1"))) (, ",") (binary_expression "pEVar20 <= pEVar6" (identifier "pEVar20") (<= "<=") (identifier "pEVar6"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)))" (( "(") (parenthesized_expression "(pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2))" (( "(") (comma_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(pEVar20 < pEVar6)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pEVar20 < pEVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar20 < pEVar6)" (( "(") (binary_expression "pEVar20 < pEVar6" (identifier "pEVar20") (< "<") (identifier "pEVar6")) () ")"))))) (, ",") (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0 ||\n        (pEVar28 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar20 != (Elf32_Ehdr *)0x0" (identifier "pEVar20") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(pEVar28 <= (Elf32_Ehdr *)lVar2)" (( "(") (binary_expression "pEVar28 <= (Elf32_Ehdr *)lVar2" (identifier "pEVar28") (<= "<=") (cast_expression "(Elf32_Ehdr *)lVar2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar2"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar29 = uVar22 - 2;\n    }" ({ "{") (expression_statement "uVar29 = uVar22 - 2;" (assignment_expression "uVar29 = uVar22 - 2" (identifier "uVar29") (= "=") (binary_expression "uVar22 - 2" (identifier "uVar22") (- "-") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar30 + -0x44) = uVar29;" (assignment_expression "*(uint *)(puVar30 + -0x44) = uVar29" (pointer_expression "*(uint *)(puVar30 + -0x44)" (* "*") (cast_expression "(uint *)(puVar30 + -0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" (identifier "pEVar32") (= "=") (identifier "pEVar28")) (; ";")) (if_statement "if ((int)pEVar28 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" (if "if") (parenthesized_expression "((int)pEVar28 < 0)" (( "(") (binary_expression "(int)pEVar28 < 0" (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;\n    }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar28" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar28" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar28" (- "-") (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28"))))) (; ";")) (} "}"))) (expression_statement "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);" (assignment_expression "pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" (identifier "pEVar6") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x5c) + 8" (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" (if "if") (parenthesized_expression "((int)pEVar32 <= (int)pEVar34)" (( "(") (binary_expression "(int)pEVar32 <= (int)pEVar34" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<= "<=") (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34"))) () ")")) (compound_statement "{\n      if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);\n      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      if (piVar16 == (int *)0x0) goto LAB_00030c64;\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar41)();\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      goto LAB_00030c64;\n    }" ({ "{") (if_statement "if (pEVar28 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" (if "if") (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0" (identifier "pEVar28") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;\n        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;\n        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -100) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -100)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -100)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "pEVar6")) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar30 + -0x70)" (* "*") (cast_expression "(uint *)(puVar30 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U"))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar30 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 4U" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030cf8;" (goto "goto") (statement_identifier "LAB_00030cf8") (; ";")) (} "}"))) (labeled_statement "LAB_00030bf4:\n      piVar16 = *(int **)(puVar30 + -0x40);" (statement_identifier "LAB_00030bf4") (: ":") (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x40)" (* "*") (cast_expression "(int **)(puVar30 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar16 == (int *)0x0) goto LAB_00030c64;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";"))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7a2c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7a2c)" (( "(") (binary_expression "puVar37 + -0x7a2c" (identifier "puVar37") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (labeled_statement "LAB_00030c08:\n      (*pcVar41)();" (statement_identifier "LAB_00030c08") (: ":") (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";")) (} "}"))) (expression_statement "uVar22 = *(int *)(puVar30 + -0x50) + 4;" (assignment_expression "uVar22 = *(int *)(puVar30 + -0x50) + 4" (identifier "uVar22") (= "=") (binary_expression "*(int *)(puVar30 + -0x50) + 4" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(uVar22 < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar22 < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 < 0x7f01)" (( "(") (binary_expression "uVar22 < 0x7f01" (identifier "uVar22") (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x70) = uVar22;" (assignment_expression "*(uint *)(puVar30 + -0x70) = uVar22" (pointer_expression "*(uint *)(puVar30 + -0x70)" (* "*") (cast_expression "(uint *)(puVar30 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }\n    else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" (if "if") (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" (identifier "pEVar31") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;\n      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);\n      *(undefined4 *)(puVar30 + -100) = uVar27;\n    }" ({ "{") (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d50);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d50)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d50)" (( "(") (binary_expression "puVar37 + -0x7d50" (identifier "puVar37") (+ "+") (number_literal "-0x7d50")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (identifier "uVar27") (= "=") (call_expression "(*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) () ")")))) (; ";")) (expression_statement "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);" (assignment_expression "pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60)" (identifier "pEVar32") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -100) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -100) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -100)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (} "}")) (else_clause "else {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" (else "else") (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" ({ "{") (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -100)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -100)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")")))) (= "=") (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(puVar30 + -100);" (assignment_expression "iVar13 = *(int *)(puVar30 + -100)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar30 + -100)" (* "*") (cast_expression "(int *)(puVar30 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar3 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x14)" (( "(") (binary_expression "puVar3 + 0x14" (identifier "puVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" (identifier "pEVar20") (= "=") (identifier "pEVar6")) (; ";")) (expression_statement "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27);" (call_expression "FUN_000306c8(iVar13,pEVar6,pEVar32,uVar27)" (identifier "FUN_000306c8") (argument_list "(iVar13,pEVar6,pEVar32,uVar27)" (( "(") (identifier "iVar13") (, ",") (identifier "pEVar6") (, ",") (identifier "pEVar32") (, ",") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar32 = pEVar34;" (assignment_expression "pEVar32 = pEVar34" (identifier "pEVar32") (= "=") (identifier "pEVar34")) (; ";")) (if_statement "if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0)" (( "(") (binary_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0" (pointer_expression "*(int *)(iVar13 + *(int *)(puVar30 + -0x50))" (* "*") (cast_expression "(int *)(iVar13 + *(int *)(puVar30 + -0x50))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + *(int *)(puVar30 + -0x50))" (( "(") (binary_expression "iVar13 + *(int *)(puVar30 + -0x50)" (identifier "iVar13") (+ "+") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);\n    }" ({ "{") (expression_statement "iVar13 = iVar13 + *(int *)(puVar30 + -0x70);" (assignment_expression "iVar13 = iVar13 + *(int *)(puVar30 + -0x70)" (identifier "iVar13") (= "=") (binary_expression "iVar13 + *(int *)(puVar30 + -0x70)" (identifier "iVar13") (+ "+") (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))))) (; ";")) (do_statement "do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      } while (*piVar16 == 0);" (do "do") (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar16 = (int *)(iVar13 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar13 = iVar13 + -4;\n      }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar32[-1].e_shstrndx" (& "&") (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" (identifier "pEVar32") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" (if "if") (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar32 == (Elf32_Ehdr *)0x0" (identifier "pEVar32") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030bf4;" (goto "goto") (statement_identifier "LAB_00030bf4") (; ";"))) (expression_statement "piVar16 = (int *)(iVar13 + -8);" (assignment_expression "piVar16 = (int *)(iVar13 + -8)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar13 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + -8)" (( "(") (binary_expression "iVar13 + -8" (identifier "iVar13") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar34 << 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar34 << 3)" (( "(") (binary_expression "(int)pEVar34 << 3" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -4" (identifier "iVar13") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar16 == 0)" (( "(") (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" (statement_identifier "LAB_00030cf8") (: ":") (if_statement "if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" (if "if") (parenthesized_expression "((int)pEVar34 * 8 + 4U < 0x7f01)" (( "(") (binary_expression "(int)pEVar34 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar34 * 8 + 4U" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (* "*") (number_literal "8")) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar13 = -((int)pEVar34 * 8 + 8);\n      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);\n      puVar3 = puVar3 + iVar13;\n    }" ({ "{") (expression_statement "iVar13 = -((int)pEVar34 * 8 + 8);" (assignment_expression "iVar13 = -((int)pEVar34 * 8 + 8)" (identifier "iVar13") (= "=") (unary_expression "-((int)pEVar34 * 8 + 8)" (- "-") (parenthesized_expression "((int)pEVar34 * 8 + 8)" (( "(") (binary_expression "(int)pEVar34 * 8 + 8" (binary_expression "(int)pEVar34 * 8" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (* "*") (number_literal "8")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar13 + 0x18)" (( "(") (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13"))) (; ";")) (} "}")) (else_clause "else {\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" (else "else") (compound_statement "{\n      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" ({ "{") (expression_statement "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d50)" (( "(") (binary_expression "puVar37 + -0x7d50" (identifier "puVar37") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (pEVar31 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" (if "if") (parenthesized_expression "(pEVar31 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" (identifier "pEVar31") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n    }" ({ "{") (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (identifier "param_6") (= "=") (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d50)" (( "(") (binary_expression "puVar37 + -0x7d50" (identifier "puVar37") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70))" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) () ")"))))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" (else "else") (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);\n    }" ({ "{") (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" (identifier "param_6") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (+ "+") (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (= "=") (binary_expression "puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (+ "+") (unary_expression "-(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x70) + 7U" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }\n    else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 8U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar30 + -0x50) + 8U" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "8U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;\n      puVar3 = puVar3 + iVar13;\n    }" ({ "{") (expression_statement "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar30 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xfU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;" (assignment_expression "*(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18" (pointer_expression "*(undefined1 **)(puVar30 + -0x74)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -0x74)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x74)" (( "(") (binary_expression "puVar30 + -0x74" (identifier "puVar30") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (binary_expression "puVar3 + iVar13 + 0x18" (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar3 = puVar3 + iVar13;" (assignment_expression "puVar3 = puVar3 + iVar13" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13"))) (; ";")) (} "}")) (else_clause "else {\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" (else "else") (compound_statement "{\n      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      *(undefined4 *)(puVar30 + -0x74) = uVar27;\n    }" ({ "{") (expression_statement "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);" (assignment_expression "uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (identifier "uVar27") (= "=") (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40)" (parenthesized_expression "(**(code **)(puVar37 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d50)" (( "(") (binary_expression "puVar37 + -0x7d50" (identifier "puVar37") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x74) = uVar27;" (assignment_expression "*(undefined4 *)(puVar30 + -0x74) = uVar27" (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x74)" (( "(") (binary_expression "puVar30 + -0x74" (identifier "puVar30") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (} "}")))) (expression_statement "puVar4 = *(undefined4 **)(puVar30 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar30 + -100)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -100)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -100)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" (identifier "puVar25") (= "=") (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar32[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar32[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar32[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar32[-1].e_shstrndx" (& "&") (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" (identifier "pEVar32") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar4" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" (identifier "pEVar31") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar11 = puVar25;" (assignment_expression "puVar11 = puVar25" (identifier "puVar11") (= "=") (identifier "puVar25")) (; ";")) (if_statement "if (puVar25 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" (if "if") (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar25 != (undefined1 *)0x0" (identifier "puVar25") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);\n      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);\n    }" ({ "{") (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar31 = pEVar20;\n        puVar11 = puVar11 + -1;\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      }" ({ "{") (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar31" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar31"))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar4" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar32[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar32[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar32[-1].e_shstrndx" (& "&") (field_expression "pEVar32[-1].e_shstrndx" (subscript_expression "pEVar32[-1]" (identifier "pEVar32") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)pEVar31 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar31 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar31" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar31" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar31"))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1])" (( "(") (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (number_literal "0x20") (- "-") (cast_expression "(uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1->e_ident_magic_str[(param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "(param_4 >> 1) - 1" (parenthesized_expression "(param_4 >> 1)" (( "(") (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) () ")")) (- "-") (number_literal "1")) (] "]"))))) () ")")))) (; ";")) (expression_statement "iVar13 = 0x1f - (int)param_1;" (assignment_expression "iVar13 = 0x1f - (int)param_1" (identifier "iVar13") (= "=") (binary_expression "0x1f - (int)param_1" (number_literal "0x1f") (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (if_statement "if (iVar13 == 0) {\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }\n    else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }\n    }" ({ "{") (if_statement "if (pEVar34 == pEVar32) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" (if "if") (parenthesized_expression "(pEVar34 == pEVar32)" (( "(") (binary_expression "pEVar34 == pEVar32" (identifier "pEVar34") (== "==") (identifier "pEVar32")) () ")")) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);\n        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);\n        pcVar41 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031264:\n        pEVar20 = param_6;\n        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n      }" ({ "{") (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar34 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" (identifier "iVar13") (= "=") (binary_expression "*(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" (* "*") (cast_expression "(int *)(puVar30 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (binary_expression "(int)pEVar34 * 4" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        } while (puVar25 != (undefined1 *)0xffffffff);" (do "do") (compound_statement "{\n          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);\n          puVar25 = puVar25 + -1;\n          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar8 = pbVar8 + -4;\n          iVar13 = iVar13 + -4;\n        }" ({ "{") (expression_statement "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(iVar13 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(iVar13 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -4)" (( "(") (binary_expression "iVar13 + -4" (identifier "iVar13") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "puVar25 = puVar25 + -1;" (assignment_expression "puVar25 = puVar25 + -1" (identifier "puVar25") (= "=") (binary_expression "puVar25 + -1" (identifier "puVar25") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" (if "if") (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20)" (( "(") (binary_expression "*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar8 + -4)" (( "(") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4")) () ")")))) (!= "!=") (identifier "pEVar20")) () ")")) (compound_statement "{\n            pcVar41 = *(code **)(puVar37 + -0x7b2c);\n            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" ({ "{") (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7b2c)" (( "(") (binary_expression "puVar37 + -0x7b2c" (identifier "puVar37") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (if_statement "if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;" (if "if") (parenthesized_expression "(pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4))" (( "(") (binary_expression "pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)" (identifier "pEVar20") (< "<") (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar8 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar8 + -4)" (( "(") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4")) () ")"))))) () ")")) (goto_statement "goto LAB_00031264;" (goto "goto") (statement_identifier "LAB_00031264") (; ";"))) (goto_statement "goto LAB_00030dd0;" (goto "goto") (statement_identifier "LAB_00030dd0") (; ";")) (} "}"))) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar13 = iVar13 + -4;" (assignment_expression "iVar13 = iVar13 + -4" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -4" (identifier "iVar13") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 != (undefined1 *)0xffffffff)" (( "(") (binary_expression "puVar25 != (undefined1 *)0xffffffff" (identifier "puVar25") (!= "!=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (; ";")) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b2c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7b2c)" (( "(") (binary_expression "puVar37 + -0x7b2c" (identifier "puVar37") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (labeled_statement "LAB_00031264:\n        pEVar20 = param_6;" (statement_identifier "LAB_00031264") (: ":") (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" (identifier "pEVar20") (= "=") (identifier "param_6")) (; ";"))) (expression_statement "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);" (call_expression "(*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32)" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar32") () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" (else "else") (compound_statement "{\n      *(uint *)(puVar30 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;\n      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);\n      param_4 = *(uint *)(puVar30 + 8);\n    }" ({ "{") (expression_statement "*(uint *)(puVar30 + 8) = param_4;" (assignment_expression "*(uint *)(puVar30 + 8) = param_4" (pointer_expression "*(uint *)(puVar30 + 8)" (* "*") (cast_expression "(uint *)(puVar30 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 8)" (( "(") (binary_expression "puVar30 + 8" (identifier "puVar30") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((param_4 << ((uint)param_1 & 0x1f)) << 1)" (( "(") (binary_expression "(param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "(param_4 << ((uint)param_1 & 0x1f))" (( "(") (binary_expression "param_4 << ((uint)param_1 & 0x1f)" (identifier "param_4") (<< "<<") (parenthesized_expression "((uint)param_1 & 0x1f)" (( "(") (binary_expression "(uint)param_1 & 0x1f" (cast_expression "(uint)param_1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;" (assignment_expression "*(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (pointer_expression "*(char **)(puVar30 + -0x80)" (* "*") (cast_expression "(char **)(puVar30 + -0x80)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x80)" (( "(") (binary_expression "puVar30 + -0x80" (identifier "puVar30") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar30 + -0x7c)" (* "*") (cast_expression "(int *)(puVar30 + -0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x7c)" (( "(") (binary_expression "puVar30 + -0x7c" (identifier "puVar30") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar37 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar37 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar37 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x7fcc)" (( "(") (binary_expression "puVar37 + -0x7fcc" (identifier "puVar37") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x430"))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar30 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (number_literal "0x3fffffff")) (; ";")) (do_statement "do {\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar13 != 0);" (do "do") (compound_statement "{\n        pEVar20 = param_6;\n        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }\n        if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }\n        iVar13 = iVar13 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" ({ "{") (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" (identifier "pEVar20") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);" (call_expression "(**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7cac))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7cac)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7cac)" (* "*") (cast_expression "(code **)(puVar37 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7cac)" (( "(") (binary_expression "puVar37 + -0x7cac" (identifier "puVar37") (+ "+") (number_literal "-0x7cac")) () ")"))))) () ")")) (argument_list "(pEVar6,param_6,param_3)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_6") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (( "(") (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "2")) (- "-") (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (( "(") (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" (* "*") (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1)" (( "(") (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar30 + -0x60))" (( "(") (binary_expression "(int)param_3 * 2 + *(int *)(puVar30 + -0x60)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "2")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x60)" (* "*") (cast_expression "(int *)(puVar30 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")"))))) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if ((int)param_3 < (int)pEVar34) {\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar34)" (( "(") (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34"))) () ")")) (compound_statement "{\n          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n        }" ({ "{") (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" (if "if") (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 != (Elf32_Ehdr *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar24._0_1_ = pEVar6->e_ident_magic_num;\n            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];\n            pEVar31 = param_6;\n            if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }\n            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar31->e_ident_magic_str[2] = (char)uVar24;\n          }" ({ "{") (expression_statement "uVar24._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar24._0_1_" (identifier "uVar24") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar6->e_ident_magic_num" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar24._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" (identifier "uVar24") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar24._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" (identifier "uVar24") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar24._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" (identifier "uVar24") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" (identifier "pEVar31") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" (if "if") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pbVar8 = &pEVar6->e_ident_class;\n              do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);\n              pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);\n            }" ({ "{") (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" (identifier "pbVar8") (= "=") (pointer_expression "&pEVar6->e_ident_class" (& "&") (field_expression "pEVar6->e_ident_class" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                pEVar31->e_ident_magic_str[2] = (char)uVar24;\n                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                puVar11 = puVar11 + -1;\n                uVar24 = *(undefined4 *)pbVar8;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                pbVar8 = (byte *)pEVar20;\n              }" ({ "{") (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar24 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 0x18)" (( "(") (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar24 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 0x10)" (( "(") (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar24 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 8)" (( "(") (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar24"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = *(undefined4 *)pbVar8;" (assignment_expression "uVar24 = *(undefined4 *)pbVar8" (identifier "uVar24") (= "=") (pointer_expression "*(undefined4 *)pbVar8" (* "*") (cast_expression "(undefined4 *)pbVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8")))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" (identifier "pbVar8") (= "=") (cast_expression "(byte *)pEVar20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (( "(") (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" (* "*") (cast_expression "(int *)(puVar30 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (; ";")) (} "}"))) (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar24 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 0x18)" (( "(") (binary_expression "(uint)uVar24 >> 0x18" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar24 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 0x10)" (( "(") (binary_expression "(uint)uVar24 >> 0x10" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar24 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar24 >> 8)" (( "(") (binary_expression "(uint)uVar24 >> 8" (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar24"))) (; ";")) (} "}"))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7d8c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d8c)" (( "(") (binary_expression "puVar37 + -0x7d8c" (identifier "puVar37") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" (else "else") (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n          pcVar41 = *(code **)(puVar30 + -0x7c);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          uVar27._0_1_ = pEVar6->e_ident_magic_num;\n          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];\n          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];\n          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];\n          if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }\n          pcVar41 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = param_3;\n          param_3 = pEVar34;\n        }" ({ "{") (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar30 + -0x7c)" (* "*") (cast_expression "(code **)(puVar30 + -0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x7c)" (( "(") (binary_expression "puVar30 + -0x7c" (identifier "puVar30") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x14)" (( "(") (binary_expression "puVar3 + 0x14" (identifier "puVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x74)" (( "(") (binary_expression "puVar30 + -0x74" (identifier "puVar30") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar3 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_3") (, ",") (identifier "uVar27") (, ",") (identifier "pEVar34") () ")"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar34[-1].e_shstrndx" (& "&") (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" (identifier "pEVar34") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar27._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar27._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar27._0_1_" (identifier "uVar27") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar6->e_ident_magic_num" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar27._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar27._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar27._1_1_" (identifier "uVar27") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar27._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar27._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar27._2_1_" (identifier "uVar27") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar27._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar27._3_1_" (identifier "uVar27") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }\n          else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar27;\n          }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x18)" (( "(") (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x10)" (( "(") (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 8)" (( "(") (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27"))) (; ";")) (} "}")) (else_clause "else {\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" (else "else") (compound_statement "{\n            pEVar31 = param_6;\n            pbVar8 = &pEVar6->e_ident_class;\n            do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar30 + -0x80) = uVar27;\n          }" ({ "{") (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" (identifier "pEVar31") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" (identifier "pbVar8") (= "=") (pointer_expression "&pEVar6->e_ident_class" (& "&") (field_expression "pEVar6->e_ident_class" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);\n              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);\n              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);\n              pEVar31->e_ident_magic_str[2] = (char)uVar27;\n              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);\n              puVar11 = puVar11 + -1;\n              uVar27 = *(undefined4 *)pbVar8;\n              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              pbVar8 = (byte *)param_3;\n            }" ({ "{") (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x18)" (( "(") (binary_expression "(uint)uVar27 >> 0x18" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 0x10)" (( "(") (binary_expression "(uint)uVar27 >> 0x10" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar27 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar27 >> 8)" (( "(") (binary_expression "(uint)uVar27 >> 8" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar27;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar27" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar8 + 4)" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)pbVar8;" (assignment_expression "uVar27 = *(undefined4 *)pbVar8" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)pbVar8" (* "*") (cast_expression "(undefined4 *)pbVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8")))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar8 = (byte *)param_3;" (assignment_expression "pbVar8 = (byte *)param_3" (identifier "pbVar8") (= "=") (cast_expression "(byte *)param_3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = uVar27;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = uVar27" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" (* "*") (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x80)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x80)" (( "(") (binary_expression "puVar30 + -0x80" (identifier "puVar30") (+ "+") (number_literal "-0x80")) () ")"))))) (= "=") (identifier "uVar27")) (; ";")) (} "}")))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7d8c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7d8c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7d8c)" (( "(") (binary_expression "puVar37 + -0x7d8c" (identifier "puVar37") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" (identifier "pEVar20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" (identifier "param_3") (= "=") (identifier "pEVar34")) (; ";")) (} "}")))) (if_statement "if ((int)param_1 < 0) {\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)param_1 < 0)" (( "(") (binary_expression "(int)param_1 < 0" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          uVar27 = *(undefined4 *)(puVar30 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = param_6;\n          (*pcVar41)(pEVar6,param_6,param_3,uVar27);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -100);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -100)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -100)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -100)" (( "(") (binary_expression "puVar30 + -100" (identifier "puVar30") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar3 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" (identifier "pEVar20") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(*pcVar41)(pEVar6,param_6,param_3,uVar27);" (call_expression "(*pcVar41)(pEVar6,param_6,param_3,uVar27)" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(pEVar6,param_6,param_3,uVar27)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)\n                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0))" (( "(") (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(param_3->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3->e_ident_magic_str + -2)" (( "(") (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) (+ "+") (unary_expression "-(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (- "-") (call_expression "(uint)(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0)" (( "(") (binary_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" (* "*") (cast_expression "(int *)(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1)" (( "(") (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4 + -1" (binary_expression "pEVar6->e_ident_magic_str +\n                                    (int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)) * 4" (cast_expression "(int)(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60))" (( "(") (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar30 + -0x60)" (binary_expression "pEVar32->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(param_3->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3->e_ident_magic_str + -2)" (( "(") (binary_expression "param_3->e_ident_magic_str + -2" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x60)" (* "*") (cast_expression "(int *)(puVar30 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")"))))) () ")"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "0")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if ((int)param_3 < (int)pEVar34) {\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }\n          else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar34)" (( "(") (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34"))) () ")")) (compound_statement "{\n            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }\n          }" ({ "{") (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" (if "if") (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 != (Elf32_Ehdr *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar26._0_1_ = pEVar6->e_ident_magic_num;\n              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];\n              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];\n              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];\n              if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }\n            }" ({ "{") (expression_statement "uVar26._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar26._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar26._0_1_" (identifier "uVar26") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar6->e_ident_magic_num" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar26._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar26._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar26._1_1_" (identifier "uVar26") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar26._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar26._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar26._2_1_" (identifier "uVar26") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar26._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar26._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar26._3_1_" (identifier "uVar26") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }\n              else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar26;\n              }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar26 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 0x18)" (( "(") (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar26 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 0x10)" (( "(") (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar26 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 8)" (( "(") (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar26" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar26"))) (; ";")) (} "}")) (else_clause "else {\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" (else "else") (compound_statement "{\n                pEVar31 = param_6;\n                pbVar8 = &pEVar6->e_ident_class;\n                do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;\n              }" ({ "{") (expression_statement "pEVar31 = param_6;" (assignment_expression "pEVar31 = param_6" (identifier "pEVar31") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pbVar8 = &pEVar6->e_ident_class;" (assignment_expression "pbVar8 = &pEVar6->e_ident_class" (identifier "pbVar8") (= "=") (pointer_expression "&pEVar6->e_ident_class" (& "&") (field_expression "pEVar6->e_ident_class" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n                  pEVar31->e_ident_magic_str[2] = (char)uVar26;\n                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);\n                  puVar11 = puVar11 + -1;\n                  uVar26 = *(undefined4 *)pbVar8;\n                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n                  pbVar8 = (byte *)pEVar20;\n                }" ({ "{") (expression_statement "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar26 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 0x18)" (( "(") (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar26 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 0x10)" (( "(") (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar26 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar26 >> 8)" (( "(") (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar31->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "pEVar31->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar26" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar8 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)pbVar8;" (assignment_expression "uVar26 = *(undefined4 *)pbVar8" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)pbVar8" (* "*") (cast_expression "(undefined4 *)pbVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8")))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar8 = (byte *)pEVar20;" (assignment_expression "pbVar8 = (byte *)pEVar20" (identifier "pbVar8") (= "=") (cast_expression "(byte *)pEVar20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (* "*") (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5)" (( "(") (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3->e_ident_magic_str * 4" (cast_expression "(int)param_3->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "*(int *)(puVar30 + -0x60) * 4" (pointer_expression "*(int *)(puVar30 + -0x60)" (* "*") (cast_expression "(int *)(puVar30 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" (else "else") (compound_statement "{\n            uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n            pcVar41 = *(code **)(puVar30 + -0x7c);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);\n            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n            puVar37 = *(undefined **)(puVar30 + -0x88);\n            pEVar20 = *(Elf32_Ehdr **)pEVar6;\n            pEVar28 = param_6;\n            pEVar31 = pEVar6;\n            if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }\n          }" ({ "{") (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar41 = *(code **)(puVar30 + -0x7c);" (assignment_expression "pcVar41 = *(code **)(puVar30 + -0x7c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar30 + -0x7c)" (* "*") (cast_expression "(code **)(puVar30 + -0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x7c)" (( "(") (binary_expression "puVar30 + -0x7c" (identifier "puVar30") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x14)" (( "(") (binary_expression "puVar3 + 0x14" (identifier "puVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x74)" (( "(") (binary_expression "puVar30 + -0x74" (identifier "puVar30") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar3 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34);" (call_expression "(*pcVar41)(pEVar6,param_3,uVar27,pEVar34)" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(pEVar6,param_3,uVar27,pEVar34)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_3") (, ",") (identifier "uVar27") (, ",") (identifier "pEVar34") () ")"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar34[-1].e_shstrndx" (& "&") (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" (identifier "pEVar34") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pEVar6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pEVar6" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar6" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar6" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar6")))) (; ";")) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" (identifier "pEVar28") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar31 = pEVar6;" (assignment_expression "pEVar31 = pEVar6" (identifier "pEVar31") (= "=") (identifier "pEVar6")) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(Elf32_Ehdr **)param_6 = pEVar20;\n              param_3 = pEVar34;\n            }" ({ "{") (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)param_6" (* "*") (cast_expression "(Elf32_Ehdr **)param_6" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_6"))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" (identifier "param_3") (= "=") (identifier "pEVar34")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" (else "else") (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar30 + -0x80) = pEVar20;\n              param_3 = pEVar34;\n            }" ({ "{") (do_statement "do {\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                *(Elf32_Ehdr **)pEVar28 = pEVar20;\n                puVar11 = puVar11 + -1;\n                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n              }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pEVar28" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar28" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar28"))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar31->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar31->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar31->e_ident_class" (& "&") (field_expression "pEVar31->e_ident_class" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar30 + -0x80) = pEVar20;" (assignment_expression "**(undefined4 **)(puVar30 + -0x80) = pEVar20" (pointer_expression "**(undefined4 **)(puVar30 + -0x80)" (* "*") (pointer_expression "*(undefined4 **)(puVar30 + -0x80)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x80)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x80)" (( "(") (binary_expression "puVar30 + -0x80" (identifier "puVar30") (+ "+") (number_literal "-0x80")) () ")"))))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" (identifier "param_3") (= "=") (identifier "pEVar34")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)((int)param_1 << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)((int)param_1 << 1)" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)((int)param_1 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 << 1)" (( "(") (binary_expression "(int)param_1 << 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "param_4 = *(uint *)(puVar30 + 8);" (assignment_expression "param_4 = *(uint *)(puVar30 + 8)" (identifier "param_4") (= "=") (pointer_expression "*(uint *)(puVar30 + 8)" (* "*") (cast_expression "(uint *)(puVar30 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 8)" (( "(") (binary_expression "puVar30 + 8" (identifier "puVar30") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00030dd0:\n    pEVar31 = (Elf32_Ehdr *)0x0;" (statement_identifier "LAB_00030dd0") (: ":") (expression_statement "pEVar31 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)0x0" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x6c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x6c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x6c)" (( "(") (binary_expression "puVar30 + -0x6c" (identifier "puVar30") (+ "+") (number_literal "-0x6c")) () ")"))))) (; ";")) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" (if "if") (parenthesized_expression "(pEVar28 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar28 == (Elf32_Ehdr *)0x0" (identifier "pEVar28") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }\n      uVar19 = param_4 & 1;\n      piVar16 = *(int **)(puVar30 + -0x54);\n      if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }\n      uVar19 = param_4 & 1;\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)param_6;\n      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar28 = param_6;\n      if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }" ({ "{") (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" (statement_identifier "LAB_00030ddc") (: ":") (if_statement "if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" (if "if") (parenthesized_expression "((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0))" (( "(") (binary_expression "(0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)param_3)" (( "(") (binary_expression "0 < (int)param_3" (number_literal "0") (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)" (( "(") (binary_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (* "*") (cast_expression "(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n        do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);\n      }" ({ "{") (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        } while (*(int *)pcVar10 == 0);" (do "do") (compound_statement "{\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar10 = (char *)(pbVar8 + -8);\n          pbVar8 = pbVar8 + -4;\n        }" ({ "{") (expression_statement "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) {\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" (if "if") (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 == (Elf32_Ehdr *)0x0" (identifier "param_3") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar19 = param_4 & 1;\n            piVar16 = *(int **)(puVar30 + -0x54);\n            if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" ({ "{") (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" (identifier "uVar19") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))\n            goto LAB_00030e34;" (if "if") (parenthesized_expression "((uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" (( "(") (binary_expression "(uVar19 == 0) ||\n               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" (( "(") (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (( "(") (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (goto_statement "goto LAB_00030e34;" (goto "goto") (statement_identifier "LAB_00030e34") (; ";"))) (goto_statement "goto LAB_00030f08;" (goto "goto") (statement_identifier "LAB_00030f08") (; ";")) (} "}"))) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(pbVar8 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + -8)" (( "(") (binary_expression "pbVar8 + -8" (identifier "pbVar8") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)pcVar10 == 0)" (( "(") (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" (* "*") (cast_expression "(int *)pcVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar10"))) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" (identifier "uVar19") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" (if "if") (parenthesized_expression "((uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))" (( "(") (binary_expression "(uVar19 == 0) ||\n         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (parenthesized_expression "(uVar19 == 0)" (( "(") (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))" (( "(") (comma_expression "piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar30 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x5c) + 4" (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (compound_statement "{\nLAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);\n        if (*piVar16 < (int)param_3) goto LAB_00031474;\nLAB_00030e44:\n        uVar19 = param_4 & 1;\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" ({ "{") (labeled_statement "LAB_00030e34:\n        pcVar41 = *(code **)(puVar37 + -0x7a84);" (statement_identifier "LAB_00030e34") (: ":") (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7a84)" (* "*") (cast_expression "(code **)(puVar37 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7a84)" (( "(") (binary_expression "puVar37 + -0x7a84" (identifier "puVar37") (+ "+") (number_literal "-0x7a84")) () ")"))))) (; ";"))) (if_statement "if (*piVar16 < (int)param_3) goto LAB_00031474;" (if "if") (parenthesized_expression "(*piVar16 < (int)param_3)" (( "(") (binary_expression "*piVar16 < (int)param_3" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_00031474;" (goto "goto") (statement_identifier "LAB_00031474") (; ";"))) (labeled_statement "LAB_00030e44:\n        uVar19 = param_4 & 1;" (statement_identifier "LAB_00030e44") (: ":") (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" (identifier "uVar19") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";"))) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" (if "if") (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 == (Elf32_Ehdr *)0x0" (identifier "param_3") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030e94;" (goto "goto") (statement_identifier "LAB_00030e94") (; ";"))) (} "}")) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" (else "else") (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);\n        pEVar20 = param_1;\n        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);\n        iVar13._0_1_ = pEVar31->e_ident_magic_num;\n        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }\n        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;\n      }" ({ "{") (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" (if "if") (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 == (Elf32_Ehdr *)0x0" (identifier "param_3") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030f04;" (goto "goto") (statement_identifier "LAB_00030f04") (; ";"))) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + 8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + 8" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar20 = param_1;" (assignment_expression "pEVar20 = param_1" (identifier "pEVar20") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar37 + -0x7b2c))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7b2c)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7b2c)" (( "(") (binary_expression "puVar37 + -0x7b2c" (identifier "puVar37") (+ "+") (number_literal "-0x7b2c")) () ")"))))) () ")")) (argument_list "(param_6,param_1,param_6,param_3)" (( "(") (identifier "param_6") (, ",") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (iVar13 == 0) {\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }\n        else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;\n          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n          do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" ({ "{") (labeled_statement "LAB_000314a0:\n          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" (statement_identifier "LAB_000314a0") (: ":") (if_statement "if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;" (if "if") (parenthesized_expression "((param_6 == param_1) || ((int)pEVar34 <= (int)param_3))" (( "(") (binary_expression "(param_6 == param_1) || ((int)pEVar34 <= (int)param_3)" (parenthesized_expression "(param_6 == param_1)" (( "(") (binary_expression "param_6 == param_1" (identifier "param_6") (== "==") (identifier "param_1")) () ")")) (|| "||") (parenthesized_expression "((int)pEVar34 <= (int)param_3)" (( "(") (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (<= "<=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")"))) () ")")) (goto_statement "goto LAB_00031130;" (goto "goto") (statement_identifier "LAB_00031130") (; ";")))) (expression_statement "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);" (do "do") (compound_statement "{\n            uVar27 = *(undefined4 *)pbVar9;\n            pbVar9 = pbVar9 + 4;\n            *(undefined4 *)pbVar8 = uVar27;\n            pbVar8 = pbVar8 + 4;\n          }" ({ "{") (expression_statement "uVar27 = *(undefined4 *)pbVar9;" (assignment_expression "uVar27 = *(undefined4 *)pbVar9" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)pbVar9" (* "*") (cast_expression "(undefined4 *)pbVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 4" (identifier "pbVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar8 = uVar27;" (assignment_expression "*(undefined4 *)pbVar8 = uVar27" (pointer_expression "*(undefined4 *)pbVar8" (* "*") (cast_expression "(undefined4 *)pbVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8"))) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar20 != (Elf32_Ehdr *)pbVar9)" (( "(") (binary_expression "pEVar20 != (Elf32_Ehdr *)pbVar9" (identifier "pEVar20") (!= "!=") (cast_expression "(Elf32_Ehdr *)pbVar9" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar9"))) () ")")) (; ";")) (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" (else "else") (compound_statement "{\n          if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);\n        }" ({ "{") (if_statement "if ((int)param_3 < (int)pEVar34) {\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar34)" (( "(") (binary_expression "(int)param_3 < (int)pEVar34" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34"))) () ")")) (compound_statement "{\n            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n            pEVar20 = *(Elf32_Ehdr **)pbVar8;\n            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);\n            pEVar31 = pEVar20;\n            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }\n            goto LAB_000314a0;\n          }" ({ "{") (expression_statement "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)param_3 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)pbVar8;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)pbVar8" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)pbVar8" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar8" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar8")))) (; ";")) (expression_statement "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar9" (* "*") (cast_expression "(undefined1 **)pbVar9" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar9"))) (= "=") (cast_expression "(undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar20[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar20[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar20[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar20[-1].e_shstrndx" (& "&") (field_expression "pEVar20[-1].e_shstrndx" (subscript_expression "pEVar20[-1]" (identifier "pEVar20") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" (identifier "pEVar31") (= "=") (identifier "pEVar20")) (; ";")) (while_statement "while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" (while "while") (parenthesized_expression "(param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)" (( "(") (comma_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0" (assignment_expression "param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)param_3->e_ident_magic_str" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")))) (, ",") (binary_expression "pEVar31 == (Elf32_Ehdr *)0x0" (identifier "pEVar31") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n              pbVar9 = pbVar9 + 4;\n              if (pEVar34 == param_3) goto LAB_00031130;\n              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);\n              pbVar8 = pbVar8 + 4;\n              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar9 = pEVar20;\n            }" ({ "{") (expression_statement "pbVar9 = pbVar9 + 4;" (assignment_expression "pbVar9 = pbVar9 + 4" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 4" (identifier "pbVar9") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (pEVar34 == param_3) goto LAB_00031130;" (if "if") (parenthesized_expression "(pEVar34 == param_3)" (( "(") (binary_expression "pEVar34 == param_3" (identifier "pEVar34") (== "==") (identifier "param_3")) () ")")) (goto_statement "goto LAB_00031130;" (goto "goto") (statement_identifier "LAB_00031130") (; ";"))) (expression_statement "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);" (assignment_expression "pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4)" (identifier "pEVar31") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pbVar8 + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar8 + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 4;" (assignment_expression "pbVar8 = pbVar8 + 4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar31[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar31[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar31[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar31[-1].e_shstrndx" (& "&") (field_expression "pEVar31[-1].e_shstrndx" (subscript_expression "pEVar31[-1]" (identifier "pEVar31") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pbVar9 = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)pbVar9 = pEVar20" (pointer_expression "*(Elf32_Ehdr **)pbVar9" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar9" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar9"))) (= "=") (identifier "pEVar20")) (; ";")) (} "}"))) (goto_statement "goto LAB_000314a0;" (goto "goto") (statement_identifier "LAB_000314a0") (; ";")) (} "}"))) (labeled_statement "LAB_00031130:\n          iVar13 = *(int *)(puVar30 + -0x50);" (statement_identifier "LAB_00031130") (: ":") (expression_statement "iVar13 = *(int *)(puVar30 + -0x50);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x50)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + iVar13 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + iVar13 + -1" (binary_expression "param_6->e_ident_magic_str + iVar13" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar13._0_1_ = pEVar31->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar31->e_ident_magic_num" (field_expression "iVar13._0_1_" (identifier "iVar13") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar31->e_ident_magic_num" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "iVar13._1_1_ = pEVar31->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar31->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" (identifier "iVar13") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar31->e_ident_magic_str[0]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar13._2_1_ = pEVar31->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar31->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" (identifier "iVar13") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar31->e_ident_magic_str[1]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar13._3_1_ = pEVar31->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar31->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" (identifier "iVar13") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar31->e_ident_magic_str[2]" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar13 == 0) {\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar13 = *(int *)(puVar30 + -0x78);\n          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);\n          do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);\n          *(int *)(puVar30 + -0x78) = iVar13;\n        }" ({ "{") (expression_statement "iVar13 = *(int *)(puVar30 + -0x78);" (assignment_expression "iVar13 = *(int *)(puVar30 + -0x78)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar30 + -0x78)" (* "*") (cast_expression "(int *)(puVar30 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);" (assignment_expression "pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          } while (*(int *)pcVar10 == 0);" (do "do") (compound_statement "{\n            iVar13 = iVar13 + -1;\n            if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar10 = (char *)(pbVar8 + -8);\n            pbVar8 = pbVar8 + -4;\n          }" ({ "{") (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar13 == 0) {\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar16 = *(int **)(puVar30 + -0x54);\n              goto LAB_00030f08;\n            }" ({ "{") (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030f08;" (goto "goto") (statement_identifier "LAB_00030f08") (; ";")) (} "}"))) (expression_statement "pcVar10 = (char *)(pbVar8 + -8);" (assignment_expression "pcVar10 = (char *)(pbVar8 + -8)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(pbVar8 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + -8)" (( "(") (binary_expression "pbVar8 + -8" (identifier "pbVar8") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)pcVar10 == 0)" (( "(") (binary_expression "*(int *)pcVar10 == 0" (pointer_expression "*(int *)pcVar10" (* "*") (cast_expression "(int *)pcVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar10"))) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(int *)(puVar30 + -0x78) = iVar13;" (assignment_expression "*(int *)(puVar30 + -0x78) = iVar13" (pointer_expression "*(int *)(puVar30 + -0x78)" (* "*") (cast_expression "(int *)(puVar30 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (if_statement "if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" (if "if") (parenthesized_expression "(**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78))" (( "(") (binary_expression "**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)" (pointer_expression "**(int **)(puVar30 + -0x54)" (* "*") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (< "<") (pointer_expression "*(int *)(puVar30 + -0x78)" (* "*") (cast_expression "(int *)(puVar30 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")"))))) () ")")) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);\n          pcVar41 = *(code **)(puVar37 + -0x7a84);\nLAB_00031474:\n          pEVar20 = param_3;\n          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));\n          puVar37 = *(undefined **)(puVar30 + -0x88);\n          goto LAB_00030e44;\n        }" ({ "{") (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" (identifier "param_3") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a84);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a84)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7a84)" (* "*") (cast_expression "(code **)(puVar37 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7a84)" (( "(") (binary_expression "puVar37 + -0x7a84" (identifier "puVar37") (+ "+") (number_literal "-0x7a84")) () ")"))))) (; ";")) (labeled_statement "LAB_00031474:\n          pEVar20 = param_3;" (statement_identifier "LAB_00031474") (: ":") (expression_statement "pEVar20 = param_3;" (assignment_expression "pEVar20 = param_3" (identifier "pEVar20") (= "=") (identifier "param_3")) (; ";"))) (expression_statement "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54));" (call_expression "(*pcVar41)(*(undefined4 *)(puVar30 + -0x54))" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(*(undefined4 *)(puVar30 + -0x54))" (( "(") (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030e44;" (goto "goto") (statement_identifier "LAB_00030e44") (; ";")) (} "}"))) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78)" (identifier "param_3") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x78)" (( "(") (binary_expression "puVar30 + -0x78" (identifier "puVar30") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (} "}")))) (expression_statement "uVar19 = param_4 & 1;" (assignment_expression "uVar19 = param_4 & 1" (identifier "uVar19") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)param_6" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)param_6" (* "*") (cast_expression "(Elf32_Ehdr **)param_6" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_6")))) (; ";")) (expression_statement "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);" (assignment_expression "puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" (identifier "puVar23") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" (* "*") (cast_expression "(undefined4 **)(*(int *)(puVar30 + -0x54) + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 8)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + 8" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar4 = puVar23;" (assignment_expression "puVar4 = puVar23" (identifier "puVar4") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" (identifier "pEVar28") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" (if "if") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);\n        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" ({ "{") (do_statement "do {\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n          *puVar4 = pEVar20;\n          puVar11 = puVar11 + -1;\n          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n        }" ({ "{") (expression_statement "*puVar4 = pEVar20;" (assignment_expression "*puVar4 = pEVar20" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar28->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar23") (= "=") (binary_expression "puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar23") (+ "+") (cast_expression "(int)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*puVar23 = pEVar20;" (assignment_expression "*puVar23 = pEVar20" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (identifier "pEVar20")) (; ";")) (} "}")) (else_clause "else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);\n      iVar18 = *(int *)(puVar30 + -0x88);\n      iVar13 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));\n      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;\n      param_1 = pEVar28;\n      if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }\n      pEVar20 = param_6;\n      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);\n      puVar37 = *(undefined **)(puVar30 + -0x88);\n      uVar19 = param_4;\nLAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);\nLAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }\n    }" ({ "{") (expression_statement "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);" (assignment_expression "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" (identifier "iVar15") (= "=") (call_expression "(**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28)" (parenthesized_expression "(**(code **)(puVar37 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7ad4)" (* "*") (cast_expression "(code **)(puVar37 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7ad4)" (( "(") (binary_expression "puVar37 + -0x7ad4" (identifier "puVar37") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar6,param_6,param_3,pEVar28)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (identifier "pEVar28") () ")")))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar30 + -0x88)" (* "*") (cast_expression "(int *)(puVar30 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "iVar13 = (int)param_3 * 4;" (assignment_expression "iVar13 = (int)param_3 * 4" (identifier "iVar13") (= "=") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar15 != 0) - 1))" (( "(") (binary_expression "param_3->e_ident_magic_str + ((iVar15 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "((iVar15 != 0) - 1)" (( "(") (binary_expression "(iVar15 != 0) - 1" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (- "-") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;" (assignment_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15" (pointer_expression "*(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" (* "*") (cast_expression "(int *)(pEVar6->e_ident_magic_str + iVar13 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar6->e_ident_magic_str + iVar13 + -1)" (( "(") (binary_expression "pEVar6->e_ident_magic_str + iVar13 + -1" (binary_expression "pEVar6->e_ident_magic_str + iVar13" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "param_1 = pEVar28;" (assignment_expression "param_1 = pEVar28" (identifier "param_1") (= "=") (identifier "pEVar28")) (; ";")) (if_statement "if ((int)pEVar34 <= (int)param_3) {\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" (if "if") (parenthesized_expression "((int)pEVar34 <= (int)param_3)" (( "(") (binary_expression "(int)pEVar34 <= (int)param_3" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (<= "<=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n        uVar27 = *(undefined4 *)(puVar30 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;\n        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);\n        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar18 = *(int *)(puVar30 + -0x88);\n        uVar17._0_1_ = pEVar6->e_ident_magic_num;\n        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }\nLAB_000312bc:\n        pEVar20 = param_6;\n        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        goto LAB_00030ddc;\n      }" ({ "{") (expression_statement "uVar27 = *(undefined4 *)(puVar30 + -0x4c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar30 + -0x4c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74)" (pointer_expression "*(undefined4 *)(puVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x14)" (( "(") (binary_expression "puVar3 + 0x14" (identifier "puVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x74)" (( "(") (binary_expression "puVar30 + -0x74" (identifier "puVar30") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44" (pointer_expression "*(undefined1 **)(puVar3 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar3 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "FUN_00030430(pEVar6,param_3,uVar27,pEVar34);" (call_expression "FUN_00030430(pEVar6,param_3,uVar27,pEVar34)" (identifier "FUN_00030430") (argument_list "(pEVar6,param_3,uVar27,pEVar34)" (( "(") (identifier "pEVar6") (, ",") (identifier "param_3") (, ",") (identifier "uVar27") (, ",") (identifier "pEVar34") () ")"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar34[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar34[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar34[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar34[-1].e_shstrndx" (& "&") (field_expression "pEVar34[-1].e_shstrndx" (subscript_expression "pEVar34[-1]" (identifier "pEVar34") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar30 + -0x88);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x88)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar30 + -0x88)" (* "*") (cast_expression "(int *)(puVar30 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar17._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar17._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar17._0_1_" (identifier "uVar17") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar6->e_ident_magic_num" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar17._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar17._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar17._1_1_" (identifier "uVar17") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar17._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar17._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar17._2_1_" (identifier "uVar17") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar17._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar17._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar17._3_1_" (identifier "uVar17") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" (identifier "pEVar28") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" (identifier "pEVar20") (= "=") (identifier "pEVar6")) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }\n        else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar17;\n          param_3 = pEVar34;\n        }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar17 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 0x18)" (( "(") (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "param_6->e_ident_magic_str[0]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar17 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 0x10)" (( "(") (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "param_6->e_ident_magic_str[1]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar17 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 8)" (( "(") (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "param_6->e_ident_magic_str[2]" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" (identifier "param_3") (= "=") (identifier "pEVar34")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" (else "else") (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;\n          param_3 = pEVar34;\n        }" ({ "{") (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar17;\n            puVar11 = puVar11 + -1;\n            uVar17._0_1_ = pEVar20->e_ident_class;\n            uVar17._1_1_ = pEVar20->e_ident_data;\n            uVar17._2_1_ = pEVar20->e_ident_version;\n            uVar17._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar17 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 0x18)" (( "(") (binary_expression "(uint)uVar17 >> 0x18" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar17 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 0x10)" (( "(") (binary_expression "(uint)uVar17 >> 0x10" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar17 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar17 >> 8)" (( "(") (binary_expression "(uint)uVar17 >> 8" (cast_expression "(uint)uVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar17._0_1_ = pEVar20->e_ident_class" (field_expression "uVar17._0_1_" (identifier "uVar17") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar17._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar17._1_1_ = pEVar20->e_ident_data" (field_expression "uVar17._1_1_" (identifier "uVar17") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar20->e_ident_data" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar17._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar17._2_1_ = pEVar20->e_ident_version" (field_expression "uVar17._2_1_" (identifier "uVar17") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar20->e_ident_version" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar17._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar17._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar17._3_1_" (identifier "uVar17") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar20->e_ident_osabi" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar20->e_ident_class" (& "&") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (* "*") (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "param_3 = pEVar34;" (assignment_expression "param_3 = pEVar34" (identifier "param_3") (= "=") (identifier "pEVar34")) (; ";")) (} "}")))) (labeled_statement "LAB_000312bc:\n        pEVar20 = param_6;" (statement_identifier "LAB_000312bc") (: ":") (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" (identifier "pEVar20") (= "=") (identifier "param_6")) (; ";"))) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar18 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar18 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar18 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + -0x7ae0)" (( "(") (binary_expression "iVar18 + -0x7ae0" (identifier "iVar18") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c))" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x6c)" (( "(") (binary_expression "puVar30 + -0x6c" (identifier "puVar30") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030ddc;" (goto "goto") (statement_identifier "LAB_00030ddc") (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&param_3[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&param_3[-1].e_shstrndx + 1" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" (if "if") (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 != (Elf32_Ehdr *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar21._0_1_ = pEVar6->e_ident_magic_num;\n        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];\n        pEVar28 = param_6;\n        pEVar20 = pEVar6;\n        if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar28->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_000312bc;\n      }" ({ "{") (expression_statement "uVar21._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar21._0_1_" (identifier "uVar21") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar6->e_ident_magic_num" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar21._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" (identifier "uVar21") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar21._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" (identifier "uVar21") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar21._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" (identifier "uVar21") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" (identifier "pEVar6") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" (identifier "pEVar28") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar20 = pEVar6;" (assignment_expression "pEVar20 = pEVar6" (identifier "pEVar20") (= "=") (identifier "pEVar6")) (; ";")) (if_statement "if (puVar11 != (undefined1 *)0x0) {\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" (if "if") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);\n          pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" ({ "{") (do_statement "do {\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (puVar11 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar28->e_ident_magic_str[2] = (char)uVar21;\n            puVar11 = puVar11 + -1;\n            uVar21._0_1_ = pEVar20->e_ident_class;\n            uVar21._1_1_ = pEVar20->e_ident_data;\n            uVar21._2_1_ = pEVar20->e_ident_version;\n            uVar21._3_1_ = pEVar20->e_ident_osabi;\n            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar21 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 0x18)" (( "(") (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar21 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 0x10)" (( "(") (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar21 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 8)" (( "(") (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar21"))) (; ";")) (expression_statement "puVar11 = puVar11 + -1;" (assignment_expression "puVar11 = puVar11 + -1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -1" (identifier "puVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar21._0_1_ = pEVar20->e_ident_class;" (assignment_expression "uVar21._0_1_ = pEVar20->e_ident_class" (field_expression "uVar21._0_1_" (identifier "uVar21") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar21._1_1_ = pEVar20->e_ident_data;" (assignment_expression "uVar21._1_1_ = pEVar20->e_ident_data" (field_expression "uVar21._1_1_" (identifier "uVar21") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar20->e_ident_data" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar21._2_1_ = pEVar20->e_ident_version;" (assignment_expression "uVar21._2_1_ = pEVar20->e_ident_version" (field_expression "uVar21._2_1_" (identifier "uVar21") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar20->e_ident_version" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar21._3_1_ = pEVar20->e_ident_osabi;" (assignment_expression "uVar21._3_1_ = pEVar20->e_ident_osabi" (field_expression "uVar21._3_1_" (identifier "uVar21") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar20->e_ident_osabi" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar20->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar20->e_ident_class" (& "&") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined1 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&param_3[-1].e_shstrndx * 4" (cast_expression "(int)&param_3[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3[-1].e_shstrndx" (& "&") (field_expression "param_3[-1].e_shstrndx" (subscript_expression "param_3[-1]" (identifier "param_3") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar21 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 0x18)" (( "(") (binary_expression "(uint)uVar21 >> 0x18" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar21 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 0x10)" (( "(") (binary_expression "(uint)uVar21 >> 0x10" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar21 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar21 >> 8)" (( "(") (binary_expression "(uint)uVar21 >> 8" (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar21"))) (; ";")) (goto_statement "goto LAB_000312bc;" (goto "goto") (statement_identifier "LAB_000312bc") (; ";")) (} "}"))) (expression_statement "pEVar20 = param_6;" (assignment_expression "pEVar20 = param_6" (identifier "pEVar20") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);" (call_expression "(**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28)" (parenthesized_expression "(**(code **)(iVar18 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar18 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar18 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar18 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + -0x7ae0)" (( "(") (binary_expression "iVar18 + -0x7ae0" (identifier "iVar18") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(param_6,param_6,0,pEVar28)" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (number_literal "0") (, ",") (identifier "pEVar28") () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar19 = param_4;" (assignment_expression "uVar19 = param_4" (identifier "uVar19") (= "=") (identifier "param_4")) (; ";")) (labeled_statement "LAB_00030f04:\n      piVar16 = *(int **)(puVar30 + -0x54);" (statement_identifier "LAB_00030f04") (: ":") (expression_statement "piVar16 = *(int **)(puVar30 + -0x54);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x54)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x54)" (* "*") (cast_expression "(int **)(puVar30 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";"))) (labeled_statement "LAB_00030f08:\n      if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" (statement_identifier "LAB_00030f08") (: ":") (if_statement "if (*piVar16 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" (if "if") (parenthesized_expression "(*piVar16 < 0)" (( "(") (binary_expression "*piVar16 < 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a84))(param_1);\n        puVar37 = *(undefined **)(puVar30 + -0x88);\n        param_1->e_ident_class = 0;\n        param_1->e_ident_data = 0;\n        param_1->e_ident_version = 0;\n        param_1->e_ident_osabi = 0;\n      }" ({ "{") (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar30 + -0x54)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar30 + -0x54)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0x0" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(**(code **)(puVar37 + -0x7a84))(param_1);" (call_expression "(**(code **)(puVar37 + -0x7a84))(param_1)" (parenthesized_expression "(**(code **)(puVar37 + -0x7a84))" (( "(") (pointer_expression "**(code **)(puVar37 + -0x7a84)" (* "*") (pointer_expression "*(code **)(puVar37 + -0x7a84)" (* "*") (cast_expression "(code **)(puVar37 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7a84)" (( "(") (binary_expression "puVar37 + -0x7a84" (identifier "puVar37") (+ "+") (number_literal "-0x7a84")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "param_1->e_ident_class = 0;" (assignment_expression "param_1->e_ident_class = 0" (field_expression "param_1->e_ident_class" (identifier "param_1") (-> "->") (field_identifier "e_ident_class")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1->e_ident_data = 0;" (assignment_expression "param_1->e_ident_data = 0" (field_expression "param_1->e_ident_data" (identifier "param_1") (-> "->") (field_identifier "e_ident_data")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1->e_ident_version = 0;" (assignment_expression "param_1->e_ident_version = 0" (field_expression "param_1->e_ident_version" (identifier "param_1") (-> "->") (field_identifier "e_ident_version")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1->e_ident_osabi = 0;" (assignment_expression "param_1->e_ident_osabi = 0" (field_expression "param_1->e_ident_osabi" (identifier "param_1") (-> "->") (field_identifier "e_ident_osabi")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + 4" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_00030e94:\n    piVar16 = *(int **)(puVar30 + -0x40);" (statement_identifier "LAB_00030e94") (: ":") (expression_statement "piVar16 = *(int **)(puVar30 + -0x40);" (assignment_expression "piVar16 = *(int **)(puVar30 + -0x40)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar30 + -0x40)" (* "*") (cast_expression "(int **)(puVar30 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar30 + -0x58)" (* "*") (cast_expression "(int **)(puVar30 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (if_statement "if (piVar16 != (int *)0x0) {\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar41 = *(code **)(puVar37 + -0x7a2c);\n      goto LAB_00030c08;\n    }" ({ "{") (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7a2c);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7a2c)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7a2c)" (* "*") (cast_expression "(code **)(puVar37 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7a2c)" (( "(") (binary_expression "puVar37 + -0x7a2c" (identifier "puVar37") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030c08;" (goto "goto") (statement_identifier "LAB_00030c08") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" (else "else") (compound_statement "{\n    pcVar41 = *(code **)(puVar36 + 0x66c10);\n    *(uint *)(puVar30 + -0x3c) = param_4;\n    *(undefined4 *)(puVar30 + -0x34) = 1;\n    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;\n    (*pcVar41)();\n    puVar37 = *(undefined **)(puVar30 + -0x88);\nLAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);\n  }" ({ "{") (expression_statement "pcVar41 = *(code **)(puVar36 + 0x66c10);" (assignment_expression "pcVar41 = *(code **)(puVar36 + 0x66c10)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar36 + 0x66c10)" (* "*") (cast_expression "(code **)(puVar36 + 0x66c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x66c10)" (( "(") (binary_expression "puVar36 + 0x66c10" (identifier "puVar36") (+ "+") (number_literal "0x66c10")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x3c) = param_4;" (assignment_expression "*(uint *)(puVar30 + -0x3c) = param_4" (pointer_expression "*(uint *)(puVar30 + -0x3c)" (* "*") (cast_expression "(uint *)(puVar30 + -0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x34)" (( "(") (binary_expression "puVar30 + -0x34" (identifier "puVar30") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x30)" (( "(") (binary_expression "puVar30 + -0x30" (identifier "puVar30") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c"))) (; ";")) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar37 = *(undefined **)(puVar30 + -0x88);" (assignment_expression "puVar37 = *(undefined **)(puVar30 + -0x88)" (identifier "puVar37") (= "=") (pointer_expression "*(undefined **)(puVar30 + -0x88)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x88)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x88)" (( "(") (binary_expression "puVar30 + -0x88" (identifier "puVar30") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (labeled_statement "LAB_00030c64:\n    piVar7 = *(int **)(puVar30 + -0x58);" (statement_identifier "LAB_00030c64") (: ":") (expression_statement "piVar7 = *(int **)(puVar30 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar30 + -0x58)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar30 + -0x58)" (* "*") (cast_expression "(int **)(puVar30 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (*(int *)(puVar30 + -0x2c) == *piVar7) {\n    return *piVar7;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar30 + -0x2c) == *piVar7)" (( "(") (binary_expression "*(int *)(puVar30 + -0x2c) == *piVar7" (pointer_expression "*(int *)(puVar30 + -0x2c)" (* "*") (cast_expression "(int *)(puVar30 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x2c)" (( "(") (binary_expression "puVar30 + -0x2c" (identifier "puVar30") (+ "+") (number_literal "-0x2c")) () ")")))) (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n    return *piVar7;\n  }" ({ "{") (return_statement "return *piVar7;" (return "return") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (} "}"))) (expression_statement "pcVar41 = *(code **)(puVar37 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(puVar37 + -0x7b70)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(puVar37 + -0x7b70)" (* "*") (cast_expression "(code **)(puVar37 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7b70)" (( "(") (binary_expression "puVar37 + -0x7b70" (identifier "puVar37") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "uVar27 = 0x3153c;" (assignment_expression "uVar27 = 0x3153c" (identifier "uVar27") (= "=") (number_literal "0x3153c")) (; ";")) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar38 = pcVar41 + 0x6db00;" (assignment_expression "pcVar38 = pcVar41 + 0x6db00" (identifier "pcVar38") (= "=") (binary_expression "pcVar41 + 0x6db00" (identifier "pcVar41") (+ "+") (number_literal "0x6db00"))) (; ";")) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" (identifier "puVar11") (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(uint *)(puVar3 + -0x10) = uVar19;" (assignment_expression "*(uint *)(puVar3 + -0x10) = uVar19" (pointer_expression "*(uint *)(puVar3 + -0x10)" (* "*") (cast_expression "(uint *)(puVar3 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x10)" (( "(") (binary_expression "puVar3 + -0x10" (identifier "puVar3") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "piVar7 = *(int **)(pcVar41 + 0x66000);" (assignment_expression "piVar7 = *(int **)(pcVar41 + 0x66000)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(pcVar41 + 0x66000)" (* "*") (cast_expression "(int **)(pcVar41 + 0x66000)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x66000)" (( "(") (binary_expression "pcVar41 + 0x66000" (identifier "pcVar41") (+ "+") (number_literal "0x66000")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0" (pointer_expression "*(undefined1 **)(puVar3 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar3 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -8)" (( "(") (binary_expression "puVar3 + -8" (identifier "puVar3") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar30 + -0xa0" (identifier "puVar30") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x14)" (( "(") (binary_expression "puVar3 + -0x14" (identifier "puVar3") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pEVar31")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x18) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar3 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x18)" (( "(") (binary_expression "puVar3 + -0x18" (identifier "puVar3") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar27" (pointer_expression "*(undefined4 *)(puVar3 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar3 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -4)" (( "(") (binary_expression "puVar3 + -4" (identifier "puVar3") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar3 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar3 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0xc)" (( "(") (binary_expression "puVar3 + -0xc" (identifier "puVar3") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar38;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar38" (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "*(int *)(puVar3 + -0x1c) = *piVar7;" (assignment_expression "*(int *)(puVar3 + -0x1c) = *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" (* "*") (cast_expression "(int *)(puVar3 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x1c)" (( "(") (binary_expression "puVar3 + -0x1c" (identifier "puVar3") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar20)" (( "(") (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar20" (cast_expression "(Elf32_Ehdr *)&DAT_00000004" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004"))) (< "<") (identifier "pEVar20")) () ")")) (compound_statement "{\n    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }\n    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar19 = 8;\n    do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);\n    if (uVar22 == 0) {\n      trap(7);\n    }\n    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar29 = 1;\n    iVar13 = 0;\n    uVar19 = 0;\n    uVar22 = 6;\n    do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);\n    if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    piVar33 = *(int **)(puVar3 + -0x20);\n    if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }" ({ "{") (if_statement "if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" (if "if") (parenthesized_expression "(*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1))" (( "(") (binary_expression "*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (cast_expression "(int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)" (( "(") (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1" (binary_expression "((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6)" (parenthesized_expression "((uint)pEVar20 >> 5)" (( "(") (binary_expression "(uint)pEVar20 >> 5" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "5")) () ")")) (+ "+") (parenthesized_expression "((uint)pEVar20 >> 6)" (( "(") (binary_expression "(uint)pEVar20 >> 6" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "6")) () ")"))) (+ "+") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))()" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar41 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar41 + 0x6607c))" (( "(") (pointer_expression "**(code **)(pcVar41 + 0x6607c)" (* "*") (pointer_expression "*(code **)(pcVar41 + 0x6607c)" (* "*") (cast_expression "(code **)(pcVar41 + 0x6607c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x6607c)" (( "(") (binary_expression "pcVar41 + 0x6607c" (identifier "pcVar41") (+ "+") (number_literal "0x6607c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" (else "else") (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)piVar16[2];\n    }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar16[2];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar16[2]" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)piVar16[2]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7efc))" (( "(") (pointer_expression "**(code **)(pcVar38 + -0x7efc)" (* "*") (pointer_expression "*(code **)(pcVar38 + -0x7efc)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7efc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7efc)" (( "(") (binary_expression "pcVar38 + -0x7efc" (identifier "pcVar38") (+ "+") (number_literal "-0x7efc")) () ")"))))) () ")")) (argument_list "(pEVar32,pEVar20)" (( "(") (identifier "pEVar32") (, ",") (identifier "pEVar20") () ")")))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (expression_statement "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar38 + -0x7c6c) + 0x1c)" (( "(") (binary_expression "*(int *)(pcVar38 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar38 + -0x7c6c)" (* "*") (cast_expression "(int *)(pcVar38 + -0x7c6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar38 + -0x7c6c)" (( "(") (binary_expression "pcVar38 + -0x7c6c" (identifier "pcVar38") (+ "+") (number_literal "-0x7c6c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" (identifier "uVar19") (= "=") (number_literal "8")) (; ";")) (do_statement "do {\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    } while (pEVar31 < pEVar20);" (do "do") (compound_statement "{\n      uVar22 = uVar19;\n      pEVar31 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar19 = uVar22 - 1;\n    }" ({ "{") (expression_statement "uVar22 = uVar19;" (assignment_expression "uVar22 = uVar19" (identifier "uVar22") (= "=") (identifier "uVar19")) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar4" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "puVar4 = puVar4 + -1;" (assignment_expression "puVar4 = puVar4 + -1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + -1" (identifier "puVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19 = uVar22 - 1;" (assignment_expression "uVar19 = uVar22 - 1" (identifier "uVar19") (= "=") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar31 < pEVar20)" (( "(") (binary_expression "pEVar31 < pEVar20" (identifier "pEVar31") (< "<") (identifier "pEVar20")) () ")")) (; ";")) (if_statement "if (uVar22 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;" (assignment_expression "uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4" (identifier "uVar19") (= "=") (binary_expression "((iVar13 + 1U) / uVar22 + 1) * 4" (parenthesized_expression "((iVar13 + 1U) / uVar22 + 1)" (( "(") (binary_expression "(iVar13 + 1U) / uVar22 + 1" (binary_expression "(iVar13 + 1U) / uVar22" (parenthesized_expression "(iVar13 + 1U)" (( "(") (binary_expression "iVar13 + 1U" (identifier "iVar13") (+ "+") (number_literal "1U")) () ")")) (/ "/") (identifier "uVar22")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar3 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar3 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x20)" (( "(") (binary_expression "puVar3 + -0x20" (identifier "puVar3") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar19 < 0x7f01) {\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }\n    else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(uVar19 < 0x7f01)" (( "(") (binary_expression "uVar19 < 0x7f01" (identifier "uVar19") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar13 = -(uVar19 + 7 & 0xfffffff8);\n      puVar11 = puVar3 + iVar13 + -0x38;\n      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);\n    }" ({ "{") (expression_statement "iVar13 = -(uVar19 + 7 & 0xfffffff8);" (assignment_expression "iVar13 = -(uVar19 + 7 & 0xfffffff8)" (identifier "iVar13") (= "=") (unary_expression "-(uVar19 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar19 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar19 + 7 & 0xfffffff8" (binary_expression "uVar19 + 7" (identifier "uVar19") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar3 + iVar13 + -0x38;" (assignment_expression "puVar11 = puVar3 + iVar13 + -0x38" (identifier "puVar11") (= "=") (binary_expression "puVar3 + iVar13 + -0x38" (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar13 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar13 + -0x28)" (( "(") (binary_expression "puVar3 + iVar13 + -0x28" (binary_expression "puVar3 + iVar13" (identifier "puVar3") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-0x28")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" (else "else") (compound_statement "{\n      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (identifier "pEVar31") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar38 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar38 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7d50)" (( "(") (binary_expression "pcVar38 + -0x7d50" (identifier "pcVar38") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar3 + -0x20)" (( "(") (binary_expression "puVar3 + -0x20" (identifier "puVar3") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" (identifier "uVar29") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar22 = 6;" (assignment_expression "uVar22 = 6" (identifier "uVar22") (= "=") (number_literal "6")) (; ";")) (do_statement "do {\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    } while (bVar1);" (do "do") (compound_statement "{\n      uVar43 = uVar19 + 1;\n      iVar18 = iVar13;\n      uVar44 = uVar22;\n      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }\n      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);\n      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar29 & 1);\n      iVar13 = iVar18;\n      uVar19 = uVar43;\n      uVar22 = uVar44;\n    }" ({ "{") (expression_statement "uVar43 = uVar19 + 1;" (assignment_expression "uVar43 = uVar19 + 1" (identifier "uVar43") (= "=") (binary_expression "uVar19 + 1" (identifier "uVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = iVar13;" (assignment_expression "iVar18 = iVar13" (identifier "iVar18") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "uVar44 = uVar22;" (assignment_expression "uVar44 = uVar22" (identifier "uVar44") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" (if "if") (parenthesized_expression "((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0)" (( "(") (binary_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0" (parenthesized_expression "(uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1))" (( "(") (binary_expression "uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" (identifier "uVar29") (& "&") (pointer_expression "*(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)" (( "(") (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4 + -1" (binary_expression "pEVar32->e_ident_magic_str + iVar15 * 4" (field_expression "pEVar32->e_ident_magic_str" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar15 * 4" (identifier "iVar15") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;\n        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }\n      }" ({ "{") (expression_statement "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;" (assignment_expression "uVar44 = (uVar43 & 1) + 1 + uVar43 * 3" (identifier "uVar44") (= "=") (binary_expression "(uVar43 & 1) + 1 + uVar43 * 3" (binary_expression "(uVar43 & 1) + 1" (parenthesized_expression "(uVar43 & 1)" (( "(") (binary_expression "uVar43 & 1" (identifier "uVar43") (& "&") (number_literal "1")) () ")")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "uVar43 * 3" (identifier "uVar43") (* "*") (number_literal "3")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {\n          uVar44 = uVar22 * uVar44;\n        }\n        else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20" (binary_expression "(ulonglong)uVar22 * ZEXT48(pEVar20)" (cast_expression "(ulonglong)uVar22" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar22")) (* "*") (call_expression "ZEXT48(pEVar20)" (identifier "ZEXT48") (argument_list "(pEVar20)" (( "(") (identifier "pEVar20") () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar44 = uVar22 * uVar44;\n        }" ({ "{") (expression_statement "uVar44 = uVar22 * uVar44;" (assignment_expression "uVar44 = uVar22 * uVar44" (identifier "uVar44") (= "=") (binary_expression "uVar22 * uVar44" (identifier "uVar22") (* "*") (identifier "uVar44"))) (; ";")) (} "}")) (else_clause "else {\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" (else "else") (compound_statement "{\n          iVar18 = iVar13 + 1;\n          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;\n        }" ({ "{") (expression_statement "iVar18 = iVar13 + 1;" (assignment_expression "iVar18 = iVar13 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar13 * 4 + -1)" (( "(") (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar13 * 4" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar13 * 4" (identifier "iVar13") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);" (assignment_expression "uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f)" (identifier "uVar29") (= "=") (binary_expression "uVar29 * 2 - ((int)uVar29 >> 0x1f)" (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2")) (- "-") (parenthesized_expression "((int)uVar29 >> 0x1f)" (( "(") (binary_expression "(int)uVar29 >> 0x1f" (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (identifier "bVar1") (= "=") (binary_expression "uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (identifier "uVar19") (!= "!=") (binary_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1)" (( "(") (binary_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar20[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)&pEVar20[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar20[-1].e_shentsize + 1" (cast_expression "(int)&pEVar20[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar20[-1].e_shentsize" (& "&") (field_expression "pEVar20[-1].e_shentsize" (subscript_expression "pEVar20[-1]" (identifier "pEVar20") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (| "|") (number_literal "1")) () ")")) (/ "/") (number_literal "3")))) (; ";")) (expression_statement "iVar15 = iVar15 + (uVar29 & 1);" (assignment_expression "iVar15 = iVar15 + (uVar29 & 1)" (identifier "iVar15") (= "=") (binary_expression "iVar15 + (uVar29 & 1)" (identifier "iVar15") (+ "+") (parenthesized_expression "(uVar29 & 1)" (( "(") (binary_expression "uVar29 & 1" (identifier "uVar29") (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar13 = iVar18;" (assignment_expression "iVar13 = iVar18" (identifier "iVar13") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "uVar19 = uVar43;" (assignment_expression "uVar19 = uVar43" (identifier "uVar19") (= "=") (identifier "uVar43")) (; ";")) (expression_statement "uVar22 = uVar44;" (assignment_expression "uVar22 = uVar44" (identifier "uVar22") (= "=") (identifier "uVar44")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (if_statement "if (iVar18 == 0) {\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }\n    else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)piVar16[2] = uVar44;\n      piVar16[1] = 1;\n    }" ({ "{") (expression_statement "*(uint *)piVar16[2] = uVar44;" (assignment_expression "*(uint *)piVar16[2] = uVar44" (pointer_expression "*(uint *)piVar16[2]" (* "*") (cast_expression "(uint *)piVar16[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" (else "else") (compound_statement "{\n      pcVar41 = *(code **)(pcVar38 + -0x7dbc);\n      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;\n      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7dbc);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7dbc)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(pcVar38 + -0x7dbc)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7dbc)" (( "(") (binary_expression "pcVar38 + -0x7dbc" (identifier "pcVar38") (+ "+") (number_literal "-0x7dbc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;" (assignment_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44" (pointer_expression "*(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar31->e_ident_magic_str + iVar18 * 4 + -1)" (( "(") (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4 + -1" (binary_expression "pEVar31->e_ident_magic_str + iVar18 * 4" (field_expression "pEVar31->e_ident_magic_str" (identifier "pEVar31") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "(*pcVar41)(piVar16,pEVar31,iVar18 + 1);" (call_expression "(*pcVar41)(piVar16,pEVar31,iVar18 + 1)" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "(piVar16,pEVar31,iVar18 + 1)" (( "(") (identifier "piVar16") (, ",") (identifier "pEVar31") (, ",") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar33 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar33 = *(int **)(puVar3 + -0x20)" (identifier "piVar33") (= "=") (pointer_expression "*(int **)(puVar3 + -0x20)" (* "*") (cast_expression "(int **)(puVar3 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x20)" (( "(") (binary_expression "puVar3 + -0x20" (identifier "puVar3") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (if_statement "if (piVar33 != (int *)0x0) {\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(piVar33 != (int *)0x0)" (( "(") (binary_expression "piVar33 != (int *)0x0" (identifier "piVar33") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar38 + -0x7a2c))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar38 + -0x7a2c))();" (call_expression "(**(code **)(pcVar38 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar38 + -0x7a2c))" (( "(") (pointer_expression "**(code **)(pcVar38 + -0x7a2c)" (* "*") (pointer_expression "*(code **)(pcVar38 + -0x7a2c)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7a2c)" (( "(") (binary_expression "pcVar38 + -0x7a2c" (identifier "pcVar38") (+ "+") (number_literal "-0x7a2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar38 = *(code **)(puVar3 + -0x28)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" (else "else") (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;\n    piVar16[1] = 1;\n    piVar33 = piVar16;\n    pEVar31 = pEVar20;\n    pEVar20 = pEVar28;\n    puVar11 = puVar3 + -0x38;\n  }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60)" (( "(") (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c)" (binary_expression "(int)pEVar20 * 4" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (* "*") (number_literal "4")) (+ "+") (pointer_expression "*(int *)(pcVar41 + 0x65b2c)" (* "*") (cast_expression "(int *)(pcVar41 + 0x65b2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar41 + 0x65b2c)" (( "(") (binary_expression "pcVar41 + 0x65b2c" (identifier "pcVar41") (+ "+") (number_literal "0x65b2c")) () ")"))))) (+ "+") (number_literal "-0x2a60")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;" (assignment_expression "*(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28" (pointer_expression "*(undefined4 *)piVar16[2]" (* "*") (cast_expression "(undefined4 *)piVar16[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")))) (= "=") (pointer_expression "*(undefined4 *)pEVar28" (* "*") (cast_expression "(undefined4 *)pEVar28" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar28")))) (; ";")) (expression_statement "piVar16[1] = 1;" (assignment_expression "piVar16[1] = 1" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar33 = piVar16;" (assignment_expression "piVar33 = piVar16" (identifier "piVar33") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "pEVar31 = pEVar20;" (assignment_expression "pEVar31 = pEVar20" (identifier "pEVar31") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" (identifier "pEVar20") (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar11 = puVar3 + -0x38;" (assignment_expression "puVar11 = puVar3 + -0x38" (identifier "puVar11") (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return *piVar7;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar3 + -0x1c) == *piVar7)" (( "(") (binary_expression "*(int *)(puVar3 + -0x1c) == *piVar7" (pointer_expression "*(int *)(puVar3 + -0x1c)" (* "*") (cast_expression "(int *)(puVar3 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x1c)" (( "(") (binary_expression "puVar3 + -0x1c" (identifier "puVar3") (+ "+") (number_literal "-0x1c")) () ")")))) (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n    return *piVar7;\n  }" ({ "{") (return_statement "return *piVar7;" (return "return") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (} "}"))) (expression_statement "pcVar41 = *(code **)(pcVar38 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(pcVar38 + -0x7b70)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(pcVar38 + -0x7b70)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7b70)" (( "(") (binary_expression "pcVar38 + -0x7b70" (identifier "pcVar38") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "pcVar42 = __gmpz_probab_prime_p;" (assignment_expression "pcVar42 = __gmpz_probab_prime_p" (identifier "pcVar42") (= "=") (identifier "__gmpz_probab_prime_p")) (; ";")) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x659a8);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x659a8)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar41 + 0x659a8)" (* "*") (cast_expression "(code **)(pcVar41 + 0x659a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x659a8)" (( "(") (binary_expression "pcVar41 + 0x659a8" (identifier "pcVar41") (+ "+") (number_literal "0x659a8")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar11 + -0x24) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar16" (pointer_expression "*(int **)(puVar11 + -0x24)" (* "*") (cast_expression "(int **)(puVar11 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x24)" (( "(") (binary_expression "puVar11 + -0x24" (identifier "puVar11") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (expression_statement "*(int **)(puVar11 + -0x20) = piVar7;" (assignment_expression "*(int **)(puVar11 + -0x20) = piVar7" (pointer_expression "*(int **)(puVar11 + -0x20)" (* "*") (cast_expression "(int **)(puVar11 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x20)" (( "(") (binary_expression "puVar11 + -0x20" (identifier "puVar11") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "piVar16 = *(int **)(pcVar41 + 0x65da0);" (assignment_expression "piVar16 = *(int **)(pcVar41 + 0x65da0)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(pcVar41 + 0x65da0)" (* "*") (cast_expression "(int **)(pcVar41 + 0x65da0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x65da0)" (( "(") (binary_expression "pcVar41 + 0x65da0" (identifier "pcVar41") (+ "+") (number_literal "0x65da0")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar6")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x1c)" (( "(") (binary_expression "puVar11 + -0x1c" (identifier "puVar11") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;" (assignment_expression "*(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0" (pointer_expression "*(code **)(puVar11 + -0x90)" (* "*") (cast_expression "(code **)(puVar11 + -0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")")))) (= "=") (binary_expression "pcVar41 + 0x6d8a0" (identifier "pcVar41") (+ "+") (number_literal "0x6d8a0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x28)" (( "(") (binary_expression "puVar11 + -0x28" (identifier "puVar11") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "*(code **)(puVar11 + -4) = pcVar42;" (assignment_expression "*(code **)(puVar11 + -4) = pcVar42" (pointer_expression "*(code **)(puVar11 + -4)" (* "*") (cast_expression "(code **)(puVar11 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -4)" (( "(") (binary_expression "puVar11 + -4" (identifier "puVar11") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar42")) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar11 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar11 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x2c) = *piVar16;" (assignment_expression "*(int *)(puVar11 + -0x2c) = *piVar16" (pointer_expression "*(int *)(puVar11 + -0x2c)" (* "*") (cast_expression "(int *)(puVar11 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x2c)" (( "(") (binary_expression "puVar11 + -0x2c" (identifier "puVar11") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "iVar13 = (*pcVar38)();" (assignment_expression "iVar13 = (*pcVar38)()" (identifier "iVar13") (= "=") (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar35 = (uint *)piVar33[2];" (assignment_expression "puVar35 = (uint *)piVar33[2]" (identifier "puVar35") (= "=") (cast_expression "(uint *)piVar33[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar33[2]" (identifier "piVar33") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar34 = (Elf32_Ehdr *)piVar33[1];" (assignment_expression "pEVar34 = (Elf32_Ehdr *)piVar33[1]" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)piVar33[1]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar33[1]" (identifier "piVar33") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar19 = *puVar35;" (assignment_expression "uVar19 = *puVar35" (identifier "uVar19") (= "=") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (; ";")) (if_statement "if (iVar13 < 1) {\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" (if "if") (parenthesized_expression "(iVar13 < 1)" (( "(") (binary_expression "iVar13 < 1" (identifier "iVar13") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    pEVar6 = (Elf32_Ehdr *)0xf4240;\n    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(uint **)(puVar11 + -0x6c) = puVar35;\n    piVar33 = (int *)(puVar11 + -0x74);\n    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;\n  }" ({ "{") (expression_statement "pEVar6 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(iVar15 + -0x7ab8))(piVar33)" (parenthesized_expression "(**(code **)(iVar15 + -0x7ab8))" (( "(") (pointer_expression "**(code **)(iVar15 + -0x7ab8)" (* "*") (pointer_expression "*(code **)(iVar15 + -0x7ab8)" (* "*") (cast_expression "(code **)(iVar15 + -0x7ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7ab8)" (( "(") (binary_expression "iVar15 + -0x7ab8" (identifier "iVar15") (+ "+") (number_literal "-0x7ab8")) () ")"))))) () ")")) (argument_list "(piVar33)" (( "(") (identifier "piVar33") () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (iVar13 < 1) {\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" (if "if") (parenthesized_expression "(iVar13 < 1)" (( "(") (binary_expression "iVar13 < 1" (identifier "iVar13") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar13 = 0;\n      if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" (identifier "pEVar34") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar19 < 3) {\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }\n        else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(uVar19 < 3)" (( "(") (binary_expression "uVar19 < 3" (identifier "uVar19") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n          iVar13 = 2;\n          if (uVar19 != 2) {\n            iVar13 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" (identifier "iVar13") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar19 != 2) {\n            iVar13 = 0;\n          }" (if "if") (parenthesized_expression "(uVar19 != 2)" (( "(") (binary_expression "uVar19 != 2" (identifier "uVar19") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            iVar13 = 0;\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          uVar22 = 3;\n          if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }\n        }" ({ "{") (expression_statement "uVar22 = 3;" (assignment_expression "uVar22 = 3" (identifier "uVar22") (= "=") (number_literal "3")) (; ";")) (if_statement "if ((uVar19 & 1) != 0) {\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" (if "if") (parenthesized_expression "((uVar19 & 1) != 0)" (( "(") (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" (( "(") (binary_expression "uVar19 & 1" (identifier "uVar19") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);\n            iVar13 = 0;\n          }" ({ "{") (do_statement "do {\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            } while (uVar29 != 0);" (do "do") (compound_statement "{\n              if (uVar22 == 0) {\n                trap(7);\n              }\n              uVar29 = uVar19 % uVar22;\n              if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }\n              uVar22 = uVar22 + 2;\n            }" ({ "{") (if_statement "if (uVar22 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar29 = uVar19 % uVar22;" (assignment_expression "uVar29 = uVar19 % uVar22" (identifier "uVar29") (= "=") (binary_expression "uVar19 % uVar22" (identifier "uVar19") (% "%") (identifier "uVar22"))) (; ";")) (if_statement "if (uVar19 / uVar22 < uVar22) {\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" (if "if") (parenthesized_expression "(uVar19 / uVar22 < uVar22)" (( "(") (binary_expression "uVar19 / uVar22 < uVar22" (binary_expression "uVar19 / uVar22" (identifier "uVar19") (/ "/") (identifier "uVar22")) (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n                iVar13 = 2;\n                goto LAB_00031824;\n              }" ({ "{") (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" (identifier "iVar13") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (expression_statement "uVar22 = uVar22 + 2;" (assignment_expression "uVar22 = uVar22 + 2" (identifier "uVar22") (= "=") (binary_expression "uVar22 + 2" (identifier "uVar22") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar34" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar34" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar34" (- "-") (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34"))))) (; ";")) (expression_statement "*(uint **)(puVar11 + -0x6c) = puVar35;" (assignment_expression "*(uint **)(puVar11 + -0x6c) = puVar35" (pointer_expression "*(uint **)(puVar11 + -0x6c)" (* "*") (cast_expression "(uint **)(puVar11 + -0x6c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x6c)" (( "(") (binary_expression "puVar11 + -0x6c" (identifier "puVar11") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar35")) (; ";")) (expression_statement "piVar33 = (int *)(puVar11 + -0x74);" (assignment_expression "piVar33 = (int *)(puVar11 + -0x74)" (identifier "piVar33") (= "=") (cast_expression "(int *)(puVar11 + -0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x74)" (( "(") (binary_expression "puVar11 + -0x74" (identifier "puVar11") (+ "+") (number_literal "-0x74")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0x70)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0x70)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x70)" (( "(") (binary_expression "puVar11 + -0x70" (identifier "puVar11") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (} "}"))) (if_statement "if (pEVar34 != (Elf32_Ehdr *)0x0) {\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" (if "if") (parenthesized_expression "(pEVar34 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar34 != (Elf32_Ehdr *)0x0" (identifier "pEVar34") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar19 = uVar19 & 1;\n    iVar13 = 0;\n    if (uVar19 == 0) goto LAB_00031824;\n    pEVar6 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }\n  }" ({ "{") (expression_statement "uVar19 = uVar19 & 1;" (assignment_expression "uVar19 = uVar19 & 1" (identifier "uVar19") (= "=") (binary_expression "uVar19 & 1" (identifier "uVar19") (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar19 == 0) goto LAB_00031824;" (if "if") (parenthesized_expression "(uVar19 == 0)" (( "(") (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";"))) (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" (identifier "pEVar6") (= "=") (identifier "pEVar34")) (; ";")) (if_statement "if ((int)pEVar34 < 10) {\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }\n    else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" (if "if") (parenthesized_expression "((int)pEVar34 < 10)" (( "(") (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" ({ "{") (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" (identifier "uVar22") (= "=") (call_expression "(**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c24))" (( "(") (pointer_expression "**(code **)(iVar15 + -0x7c24)" (* "*") (pointer_expression "*(code **)(iVar15 + -0x7c24)" (* "*") (cast_expression "(code **)(iVar15 + -0x7c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7c24)" (( "(") (binary_expression "iVar15 + -0x7c24" (identifier "iVar15") (+ "+") (number_literal "-0x7c24")) () ")"))))) () ")")) (argument_list "(puVar35,pEVar34,0xc0cfd797,0x53e5645c)" (( "(") (identifier "puVar35") (, ",") (identifier "pEVar34") (, ",") (number_literal "0xc0cfd797") (, ",") (number_literal "0x53e5645c") () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" (else "else") (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar11 + -0x90);\n    }" ({ "{") (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" (identifier "uVar22") (= "=") (call_expression "(**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar15 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar15 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar15 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar15 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7b80)" (( "(") (binary_expression "iVar15 + -0x7b80" (identifier "iVar15") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar35,pEVar34,0xc0cfd797)" (( "(") (identifier "puVar35") (, ",") (identifier "pEVar34") (, ",") (number_literal "0xc0cfd797") () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" (if "if") (parenthesized_expression "((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d))" (( "(") (binary_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&\n       (uVar22 != (uVar22 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))))" (( "(") (binary_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&\n        ((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))))" (( "(") (binary_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)) &&\n         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7))" (( "(") (binary_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&\n          (uVar22 != (uVar22 / 7) * 7)" (parenthesized_expression "((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5))" (( "(") (binary_expression "(uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)" (parenthesized_expression "(uVar22 != (uVar22 / 3) * 3)" (( "(") (binary_expression "uVar22 != (uVar22 / 3) * 3" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 3) * 3" (parenthesized_expression "(uVar22 / 3)" (( "(") (binary_expression "uVar22 / 3" (identifier "uVar22") (/ "/") (number_literal "3")) () ")")) (* "*") (number_literal "3"))) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != (uVar22 / 5) * 5)" (( "(") (binary_expression "uVar22 != (uVar22 / 5) * 5" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 5) * 5" (parenthesized_expression "(uVar22 / 5)" (( "(") (binary_expression "uVar22 / 5" (identifier "uVar22") (/ "/") (number_literal "5")) () ")")) (* "*") (number_literal "5"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != (uVar22 / 7) * 7)" (( "(") (binary_expression "uVar22 != (uVar22 / 7) * 7" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 7) * 7" (parenthesized_expression "(uVar22 / 7)" (( "(") (binary_expression "uVar22 / 7" (identifier "uVar22") (/ "/") (number_literal "7")) () ")")) (* "*") (number_literal "7"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))" (( "(") (parenthesized_expression "(uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd))" (( "(") (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)" (binary_expression "uVar22 != (uVar22 / 0xb) * 0xb" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0xb) * 0xb" (parenthesized_expression "(uVar22 / 0xb)" (( "(") (binary_expression "uVar22 / 0xb" (identifier "uVar22") (/ "/") (number_literal "0xb")) () ")")) (* "*") (number_literal "0xb"))) (&& "&&") (parenthesized_expression "(uVar22 != (uVar22 / 0xd) * 0xd)" (( "(") (binary_expression "uVar22 != (uVar22 / 0xd) * 0xd" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0xd) * 0xd" (parenthesized_expression "(uVar22 / 0xd)" (( "(") (binary_expression "uVar22 / 0xd" (identifier "uVar22") (/ "/") (number_literal "0xd")) () ")")) (* "*") (number_literal "0xd"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))" (( "(") (parenthesized_expression "(uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))))" (( "(") (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11 &&\n         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" (binary_expression "uVar22 != (uVar22 / 0x11) * 0x11" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0x11) * 0x11" (parenthesized_expression "(uVar22 / 0x11)" (( "(") (binary_expression "uVar22 / 0x11" (identifier "uVar22") (/ "/") (number_literal "0x11")) () ")")) (* "*") (number_literal "0x11"))) (&& "&&") (parenthesized_expression "((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))" (( "(") (parenthesized_expression "(uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17))" (( "(") (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)" (binary_expression "uVar22 != (uVar22 / 0x13) * 0x13" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0x13) * 0x13" (parenthesized_expression "(uVar22 / 0x13)" (( "(") (binary_expression "uVar22 / 0x13" (identifier "uVar22") (/ "/") (number_literal "0x13")) () ")")) (* "*") (number_literal "0x13"))) (&& "&&") (parenthesized_expression "(uVar22 != (uVar22 / 0x17) * 0x17)" (( "(") (binary_expression "uVar22 != (uVar22 / 0x17) * 0x17" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0x17) * 0x17" (parenthesized_expression "(uVar22 / 0x17)" (( "(") (binary_expression "uVar22 / 0x17" (identifier "uVar22") (/ "/") (number_literal "0x17")) () ")")) (* "*") (number_literal "0x17"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != (uVar22 / 0x1d) * 0x1d)" (( "(") (binary_expression "uVar22 != (uVar22 / 0x1d) * 0x1d" (identifier "uVar22") (!= "!=") (binary_expression "(uVar22 / 0x1d) * 0x1d" (parenthesized_expression "(uVar22 / 0x1d)" (( "(") (binary_expression "uVar22 / 0x1d" (identifier "uVar22") (/ "/") (number_literal "0x1d")) () ")")) (* "*") (number_literal "0x1d"))) () ")"))) () ")")) (compound_statement "{\n      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);\n      iVar13 = *(int *)(puVar11 + -0x90);\n      if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);\n      iVar15 = *(int *)(puVar11 + -0x90);\n      pEVar6 = pEVar31;\n      goto LAB_00031824;\n    }" ({ "{") (expression_statement "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);" (assignment_expression "uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2)" (identifier "uVar22") (= "=") (call_expression "(**(code **)(iVar15 + -0x7f14))(piVar33,2)" (parenthesized_expression "(**(code **)(iVar15 + -0x7f14))" (( "(") (pointer_expression "**(code **)(iVar15 + -0x7f14)" (* "*") (pointer_expression "*(code **)(iVar15 + -0x7f14)" (* "*") (cast_expression "(code **)(iVar15 + -0x7f14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7f14)" (( "(") (binary_expression "iVar15 + -0x7f14" (identifier "iVar15") (+ "+") (number_literal "-0x7f14")) () ")"))))) () ")")) (argument_list "(piVar33,2)" (( "(") (identifier "piVar33") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (0x1f < uVar22) {\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" (if "if") (parenthesized_expression "(0x1f < uVar22)" (( "(") (binary_expression "0x1f < uVar22" (number_literal "0x1f") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n        iVar18 = 0;\n        puVar30 = puVar11 + -0x68;\n        uVar29 = 0x1f;\n        iVar15 = 0;\nLAB_00031a28:\n        uVar44 = 3;\n        do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);\n        goto LAB_00031a4c;\n      }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar30 = puVar11 + -0x68;" (assignment_expression "puVar30 = puVar11 + -0x68" (identifier "puVar30") (= "=") (binary_expression "puVar11 + -0x68" (identifier "puVar11") (+ "+") (number_literal "-0x68"))) (; ";")) (expression_statement "uVar29 = 0x1f;" (assignment_expression "uVar29 = 0x1f" (identifier "uVar29") (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00031a28:\n        uVar44 = 3;" (statement_identifier "LAB_00031a28") (: ":") (expression_statement "uVar44 = 3;" (assignment_expression "uVar44 = 3" (identifier "uVar44") (= "=") (number_literal "3")) (; ";"))) (do_statement "do {\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        } while (uVar43 != 0);" (do "do") (compound_statement "{\n          if (uVar44 == 0) {\n            trap(7);\n          }\n          uVar43 = uVar29 % uVar44;\n          if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar44 = uVar44 + 2;\n          iVar40 = iVar15;\n        }" ({ "{") (if_statement "if (uVar44 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar44 == 0)" (( "(") (binary_expression "uVar44 == 0" (identifier "uVar44") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar43 = uVar29 % uVar44;" (assignment_expression "uVar43 = uVar29 % uVar44" (identifier "uVar43") (= "=") (binary_expression "uVar29 % uVar44" (identifier "uVar29") (% "%") (identifier "uVar44"))) (; ";")) (if_statement "if (uVar29 / uVar44 < uVar44) {\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" (if "if") (parenthesized_expression "(uVar29 / uVar44 < uVar44)" (( "(") (binary_expression "uVar29 / uVar44 < uVar44" (binary_expression "uVar29 / uVar44" (identifier "uVar29") (/ "/") (identifier "uVar44")) (< "<") (identifier "uVar44")) () ")")) (compound_statement "{\n            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar11 + -0x7c) = puVar30;\n            *(int *)(puVar11 + -0x80) = iVar18;\n            *(uint *)(puVar11 + -0x84) = uVar22;\n            if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }\n            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" ({ "{") (if_statement "if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" (if "if") (parenthesized_expression "(iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0)" (( "(") (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0" (binary_expression "iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" (binary_expression "iVar18 * uVar19" (identifier "iVar18") (* "*") (identifier "uVar19")) (+ "+") (cast_expression "(int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20" (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (* "*") (cast_expression "(ulonglong)uVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar29"))) (>> ">>") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar40 = iVar15 + 1;\n              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);\n              goto LAB_00031b4c;\n            }" ({ "{") (expression_statement "iVar40 = iVar15 + 1;" (assignment_expression "iVar40 = iVar15 + 1" (identifier "iVar40") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29)" (identifier "uVar19") (= "=") (call_expression "(uint)((ulonglong)uVar19 * (ulonglong)uVar29)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar19 * (ulonglong)uVar29)" (( "(") (binary_expression "(ulonglong)uVar19 * (ulonglong)uVar29" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (* "*") (cast_expression "(ulonglong)uVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar29"))) () ")")))) (; ";")) (goto_statement "goto LAB_00031b4c;" (goto "goto") (statement_identifier "LAB_00031b4c") (; ";")) (} "}"))) (expression_statement "*(undefined1 **)(puVar11 + -0x7c) = puVar30;" (assignment_expression "*(undefined1 **)(puVar11 + -0x7c) = puVar30" (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x7c)" (( "(") (binary_expression "puVar11 + -0x7c" (identifier "puVar11") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (identifier "puVar30")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x80) = iVar18;" (assignment_expression "*(int *)(puVar11 + -0x80) = iVar18" (pointer_expression "*(int *)(puVar11 + -0x80)" (* "*") (cast_expression "(int *)(puVar11 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x80)" (( "(") (binary_expression "puVar11 + -0x80" (identifier "puVar11") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "*(uint *)(puVar11 + -0x84) = uVar22;" (assignment_expression "*(uint *)(puVar11 + -0x84) = uVar22" (pointer_expression "*(uint *)(puVar11 + -0x84)" (* "*") (cast_expression "(uint *)(puVar11 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x84)" (( "(") (binary_expression "puVar11 + -0x84" (identifier "puVar11") (+ "+") (number_literal "-0x84")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (if_statement "if ((int)pEVar34 < 10) {\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }\n            else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" (if "if") (parenthesized_expression "((int)pEVar34 < 10)" (( "(") (binary_expression "(int)pEVar34 < 10" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n            }" ({ "{") (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c68))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7c68)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7c68)" (* "*") (cast_expression "(code **)(iVar13 + -0x7c68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7c68)" (( "(") (binary_expression "iVar13 + -0x7c68" (identifier "iVar13") (+ "+") (number_literal "-0x7c68")) () ")"))))) () ")")) (argument_list "(puVar35,pEVar34,uVar19,0)" (( "(") (identifier "puVar35") (, ",") (identifier "pEVar34") (, ",") (identifier "uVar19") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(puVar11 + -0x84)" (* "*") (cast_expression "(uint *)(puVar11 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x84)" (( "(") (binary_expression "puVar11 + -0x84" (identifier "puVar11") (+ "+") (number_literal "-0x84")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar11 + -0x80)" (* "*") (cast_expression "(int *)(puVar11 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x80)" (( "(") (binary_expression "puVar11 + -0x80" (identifier "puVar11") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x7c)" (( "(") (binary_expression "puVar11 + -0x7c" (identifier "puVar11") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" (else "else") (compound_statement "{\n              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);\n              iVar13 = *(int *)(puVar11 + -0x90);\n              puVar30 = *(undefined1 **)(puVar11 + -0x7c);\n              iVar18 = *(int *)(puVar11 + -0x80);\n              uVar22 = *(uint *)(puVar11 + -0x84);\n            }" ({ "{") (expression_statement "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);" (assignment_expression "uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar13 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7b80)" (( "(") (binary_expression "iVar13 + -0x7b80" (identifier "iVar13") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar35,pEVar34,uVar19)" (( "(") (identifier "puVar35") (, ",") (identifier "pEVar34") (, ",") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar13 = *(int *)(puVar11 + -0x90)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "puVar30 = *(undefined1 **)(puVar11 + -0x7c);" (assignment_expression "puVar30 = *(undefined1 **)(puVar11 + -0x7c)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined1 **)(puVar11 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x7c)" (( "(") (binary_expression "puVar11 + -0x7c" (identifier "puVar11") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar11 + -0x80);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x80)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar11 + -0x80)" (* "*") (cast_expression "(int *)(puVar11 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x80)" (( "(") (binary_expression "puVar11 + -0x80" (identifier "puVar11") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "uVar22 = *(uint *)(puVar11 + -0x84);" (assignment_expression "uVar22 = *(uint *)(puVar11 + -0x84)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(puVar11 + -0x84)" (* "*") (cast_expression "(uint *)(puVar11 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x84)" (( "(") (binary_expression "puVar11 + -0x84" (identifier "puVar11") (+ "+") (number_literal "-0x84")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);" (assignment_expression "puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + (iVar15 + 0x3fffffff) * 4)" (( "(") (binary_expression "puVar30 + (iVar15 + 0x3fffffff) * 4" (identifier "puVar30") (+ "+") (binary_expression "(iVar15 + 0x3fffffff) * 4" (parenthesized_expression "(iVar15 + 0x3fffffff)" (( "(") (binary_expression "iVar15 + 0x3fffffff" (identifier "iVar15") (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (goto_statement "goto LAB_00031bcc;" (goto "goto") (statement_identifier "LAB_00031bcc") (; ";")) (} "}"))) (expression_statement "uVar44 = uVar44 + 2;" (assignment_expression "uVar44 = uVar44 + 2" (identifier "uVar44") (= "=") (binary_expression "uVar44 + 2" (identifier "uVar44") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar40 = iVar15;" (assignment_expression "iVar40 = iVar15" (identifier "iVar40") (= "=") (identifier "iVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar43 != 0)" (( "(") (binary_expression "uVar43 != 0" (identifier "uVar43") (!= "!=") (number_literal "0")) () ")")) (; ";")) (goto_statement "goto LAB_00031a4c;" (goto "goto") (statement_identifier "LAB_00031a4c") (; ";")) (} "}"))) (labeled_statement "LAB_00031a64:\n      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" (statement_identifier "LAB_00031a64") (: ":") (expression_statement "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);" (assignment_expression "iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar33)" (parenthesized_expression "(**(code **)(iVar13 + -0x7d48))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7d48)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7d48)" (* "*") (cast_expression "(code **)(iVar13 + -0x7d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7d48)" (( "(") (binary_expression "iVar13 + -0x7d48" (identifier "iVar13") (+ "+") (number_literal "-0x7d48")) () ")"))))) () ")")) (argument_list "(piVar33)" (( "(") (identifier "piVar33") () ")")))) (; ";"))) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar6 = pEVar31;" (assignment_expression "pEVar6 = pEVar31" (identifier "pEVar6") (= "=") (identifier "pEVar31")) (; ";")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00031824:\n  iVar18 = *(int *)(puVar11 + -0x2c);" (statement_identifier "LAB_00031824") (: ":") (expression_statement "iVar18 = *(int *)(puVar11 + -0x2c);" (assignment_expression "iVar18 = *(int *)(puVar11 + -0x2c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar11 + -0x2c)" (* "*") (cast_expression "(int *)(puVar11 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x2c)" (( "(") (binary_expression "puVar11 + -0x2c" (identifier "puVar11") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar18 == *piVar16) {\n    return iVar13;\n  }" (if "if") (parenthesized_expression "(iVar18 == *piVar16)" (( "(") (binary_expression "iVar18 == *piVar16" (identifier "iVar18") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n    return iVar13;\n  }" ({ "{") (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}"))) (labeled_statement "LAB_00031c58:\n  pcVar41 = *(code **)(iVar15 + -0x7b70);" (statement_identifier "LAB_00031c58") (: ":") (expression_statement "pcVar41 = *(code **)(iVar15 + -0x7b70);" (assignment_expression "pcVar41 = *(code **)(iVar15 + -0x7b70)" (identifier "pcVar41") (= "=") (pointer_expression "*(code **)(iVar15 + -0x7b70)" (* "*") (cast_expression "(code **)(iVar15 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7b70)" (( "(") (binary_expression "iVar15 + -0x7b70" (identifier "iVar15") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";"))) (expression_statement "uVar27 = 0x31c64;" (assignment_expression "uVar27 = 0x31c64" (identifier "uVar27") (= "=") (number_literal "0x31c64")) (; ";")) (expression_statement "(*pcVar41)();" (call_expression "(*pcVar41)()" (parenthesized_expression "(*pcVar41)" (( "(") (pointer_expression "*pcVar41" (* "*") (identifier "pcVar41")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar38 = pcVar41 + 0x6d3d0;" (assignment_expression "pcVar38 = pcVar41 + 0x6d3d0" (identifier "pcVar38") (= "=") (binary_expression "pcVar41 + 0x6d3d0" (identifier "pcVar41") (+ "+") (number_literal "0x6d3d0"))) (; ";")) (expression_statement "pcVar10 = *(char **)(pcVar41 + 0x65518);" (assignment_expression "pcVar10 = *(char **)(pcVar41 + 0x65518)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(pcVar41 + 0x65518)" (* "*") (cast_expression "(char **)(pcVar41 + 0x65518)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x65518)" (( "(") (binary_expression "pcVar41 + 0x65518" (identifier "pcVar41") (+ "+") (number_literal "0x65518")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar11 + -0xa8) = piVar16;" (assignment_expression "*(int **)(puVar11 + -0xa8) = piVar16" (pointer_expression "*(int **)(puVar11 + -0xa8)" (* "*") (cast_expression "(int **)(puVar11 + -0xa8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xa8)" (( "(") (binary_expression "puVar11 + -0xa8" (identifier "puVar11") (+ "+") (number_literal "-0xa8")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar11 + -0xac)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar11 + -0xac)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xac)" (( "(") (binary_expression "puVar11 + -0xac" (identifier "puVar11") (+ "+") (number_literal "-0xac")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "*(code **)(puVar11 + -0xb8) = pcVar38;" (assignment_expression "*(code **)(puVar11 + -0xb8) = pcVar38" (pointer_expression "*(code **)(puVar11 + -0xb8)" (* "*") (cast_expression "(code **)(puVar11 + -0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xb8)" (( "(") (binary_expression "puVar11 + -0xb8" (identifier "puVar11") (+ "+") (number_literal "-0xb8")) () ")")))) (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0xa4) = uVar27;" (assignment_expression "*(undefined4 *)(puVar11 + -0xa4) = uVar27" (pointer_expression "*(undefined4 *)(puVar11 + -0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0xa4)" (( "(") (binary_expression "puVar11 + -0xa4" (identifier "puVar11") (+ "+") (number_literal "-0xa4")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (if_statement "if (*pcVar10 == '\0') {\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" (if "if") (parenthesized_expression "(*pcVar10 == '\0')" (( "(") (binary_expression "*pcVar10 == '\0'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pcVar38 = *(code **)(pcVar41 + 0x65990);\n    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);\n    *pcVar10 = '\x01';\n    (*pcVar38)(uVar27);\n    pcVar38 = *(code **)(puVar11 + -0xb8);\n  }" ({ "{") (expression_statement "pcVar38 = *(code **)(pcVar41 + 0x65990);" (assignment_expression "pcVar38 = *(code **)(pcVar41 + 0x65990)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar41 + 0x65990)" (* "*") (cast_expression "(code **)(pcVar41 + 0x65990)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar41 + 0x65990)" (( "(") (binary_expression "pcVar41 + 0x65990" (identifier "pcVar41") (+ "+") (number_literal "0x65990")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);" (assignment_expression "uVar27 = *(undefined4 *)(pcVar41 + 0x6560c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pcVar41 + 0x6560c)" (* "*") (cast_expression "(undefined4 *)(pcVar41 + 0x6560c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar41 + 0x6560c)" (( "(") (binary_expression "pcVar41 + 0x6560c" (identifier "pcVar41") (+ "+") (number_literal "0x6560c")) () ")"))))) (; ";")) (expression_statement "*pcVar10 = '\x01';" (assignment_expression "*pcVar10 = '\x01'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "(*pcVar38)(uVar27);" (call_expression "(*pcVar38)(uVar27)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(uVar27)" (( "(") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar11 + -0xb8);" (assignment_expression "pcVar38 = *(code **)(puVar11 + -0xb8)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar11 + -0xb8)" (* "*") (cast_expression "(code **)(puVar11 + -0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xb8)" (( "(") (binary_expression "puVar11 + -0xb8" (identifier "puVar11") (+ "+") (number_literal "-0xb8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar34 = pEVar6;" (assignment_expression "pEVar34 = pEVar6" (identifier "pEVar34") (= "=") (identifier "pEVar6")) (; ";")) (if_statement "if ((int)pEVar6 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" (if "if") (parenthesized_expression "((int)pEVar6 < 0)" (( "(") (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;\n  }" ({ "{") (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar6" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar6" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar6" (- "-") (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6"))))) (; ";")) (} "}"))) (expression_statement "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);" (assignment_expression "iVar13 = (**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(pcVar38 + -0x7f7c))\n                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" (parenthesized_expression "(**(code **)(pcVar38 + -0x7f7c))" (( "(") (pointer_expression "**(code **)(pcVar38 + -0x7f7c)" (* "*") (pointer_expression "*(code **)(pcVar38 + -0x7f7c)" (* "*") (cast_expression "(code **)(pcVar38 + -0x7f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar38 + -0x7f7c)" (( "(") (binary_expression "pcVar38 + -0x7f7c" (identifier "pcVar38") (+ "+") (number_literal "-0x7f7c")) () ")"))))) () ")")) (argument_list "(iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5)" (( "(") (identifier "iVar18") (, ",") (pointer_expression "*(undefined4 *)(pcVar38 + -0x7dc4)" (* "*") (cast_expression "(undefined4 *)(pcVar38 + -0x7dc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar38 + -0x7dc4)" (( "(") (binary_expression "pcVar38 + -0x7dc4" (identifier "pcVar38") (+ "+") (number_literal "-0x7dc4")) () ")")))) (, ",") (binary_expression "(int)pEVar34 << 5" (cast_expression "(int)pEVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar34")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if ((int)pEVar6 < 0) {\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" (if "if") (parenthesized_expression "((int)pEVar6 < 0)" (( "(") (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar13 = -*(int *)(iVar18 + 4);\n    *(int *)(iVar18 + 4) = iVar13;\n  }" ({ "{") (expression_statement "iVar13 = -*(int *)(iVar18 + 4);" (assignment_expression "iVar13 = -*(int *)(iVar18 + 4)" (identifier "iVar13") (= "=") (unary_expression "-*(int *)(iVar18 + 4)" (- "-") (pointer_expression "*(int *)(iVar18 + 4)" (* "*") (cast_expression "(int *)(iVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "*(int *)(iVar18 + 4) = iVar13;" (assignment_expression "*(int *)(iVar18 + 4) = iVar13" (pointer_expression "*(int *)(iVar18 + 4)" (* "*") (cast_expression "(int *)(iVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (labeled_statement "LAB_00031bcc:\n  iVar15 = iVar15 + -1;" (statement_identifier "LAB_00031bcc") (: ":") (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";"))) (if_statement "if (iVar15 == -1) goto code_r0x00031bd8;" (if "if") (parenthesized_expression "(iVar15 == -1)" (( "(") (binary_expression "iVar15 == -1" (identifier "iVar15") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto code_r0x00031bd8;" (goto "goto") (statement_identifier "code_r0x00031bd8") (; ";"))) (expression_statement "uVar44 = *puVar14;" (assignment_expression "uVar44 = *puVar14" (identifier "uVar44") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (if_statement "if (uVar44 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar44 == 0)" (( "(") (binary_expression "uVar44 == 0" (identifier "uVar44") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar14 = puVar14 + -1;" (assignment_expression "puVar14 = puVar14 + -1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + -1" (identifier "puVar14") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar19 % uVar44 == 0) {\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" (if "if") (parenthesized_expression "(uVar19 % uVar44 == 0)" (( "(") (binary_expression "uVar19 % uVar44 == 0" (binary_expression "uVar19 % uVar44" (identifier "uVar19") (% "%") (identifier "uVar44")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pEVar6 = pEVar34;\n    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);\n    iVar13 = 0;\n    iVar15 = *(int *)(puVar11 + -0x90);\n    if (iVar18 == 0) goto LAB_00031824;\n    pEVar6 = (Elf32_Ehdr *)0x81;\n    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" ({ "{") (expression_statement "pEVar6 = pEVar34;" (assignment_expression "pEVar6 = pEVar34" (identifier "pEVar6") (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);" (assignment_expression "iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35)" (identifier "iVar18") (= "=") (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar35)" (parenthesized_expression "(**(code **)(iVar13 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar13 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7b80)" (( "(") (binary_expression "iVar13 + -0x7b80" (identifier "iVar13") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar35)" (( "(") (identifier "puVar35") () ")")))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar15 = *(int *)(puVar11 + -0x90);" (assignment_expression "iVar15 = *(int *)(puVar11 + -0x90)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar11 + -0x90)" (* "*") (cast_expression "(int *)(puVar11 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x90)" (( "(") (binary_expression "puVar11 + -0x90" (identifier "puVar11") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_00031824;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";"))) (expression_statement "pEVar6 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0x81" (identifier "pEVar6") (= "=") (cast_expression "(Elf32_Ehdr *)0x81" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x81"))) (; ";")) (expression_statement "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4" (identifier "iVar18") (= "=") (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar15 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x7fd4)" (( "(") (binary_expression "iVar15 + -0x7fd4" (identifier "iVar15") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x29e4"))) (; ";")) (expression_statement "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c20))" (( "(") (pointer_expression "**(code **)(iVar15 + -0x7c20)" (* "*") (pointer_expression "*(code **)(iVar15 + -0x7c20)" (* "*") (cast_expression "(code **)(iVar15 + -0x7c20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + -0x7c20)" (( "(") (binary_expression "iVar15 + -0x7c20" (identifier "iVar15") (+ "+") (number_literal "-0x7c20")) () ")"))))) () ")")) (argument_list "(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40)" (( "(") (identifier "iVar18") (, ",") (number_literal "0x81") (, ",") (binary_expression "*(int *)(iVar15 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar15 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar15 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x7fd4)" (( "(") (binary_expression "iVar15 + -0x7fd4" (identifier "iVar15") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x2a40")) () ")"))) (; ";")) (goto_statement "goto LAB_00031c58;" (goto "goto") (statement_identifier "LAB_00031c58") (; ";")) (} "}"))) (goto_statement "goto LAB_00031bcc;" (goto "goto") (statement_identifier "LAB_00031bcc") (; ";")) (labeled_statement "code_r0x00031bd8:\n  iVar40 = 1;" (statement_identifier "code_r0x00031bd8") (: ":") (expression_statement "iVar40 = 1;" (assignment_expression "iVar40 = 1" (identifier "iVar40") (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" (identifier "uVar19") (= "=") (identifier "uVar29")) (; ";")) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" (statement_identifier "LAB_00031b4c") (: ":") (expression_statement "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;" (assignment_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29" (pointer_expression "*(uint *)(puVar11 + iVar15 * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar11 + iVar15 * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + iVar15 * 4 + -0x68)" (( "(") (binary_expression "puVar11 + iVar15 * 4 + -0x68" (binary_expression "puVar11 + iVar15 * 4" (identifier "puVar11") (+ "+") (binary_expression "iVar15 * 4" (identifier "iVar15") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "uVar29")) (; ";"))) (labeled_statement "LAB_00031a4c:\n  uVar44 = uVar29 + 2;" (statement_identifier "LAB_00031a4c") (: ":") (expression_statement "uVar44 = uVar29 + 2;" (assignment_expression "uVar44 = uVar29 + 2" (identifier "uVar44") (= "=") (binary_expression "uVar29 + 2" (identifier "uVar29") (+ "+") (number_literal "2"))) (; ";"))) (expression_statement "iVar18 = (uint)(uVar44 < uVar29) + iVar18;" (assignment_expression "iVar18 = (uint)(uVar44 < uVar29) + iVar18" (identifier "iVar18") (= "=") (binary_expression "(uint)(uVar44 < uVar29) + iVar18" (call_expression "(uint)(uVar44 < uVar29)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar44 < uVar29)" (( "(") (binary_expression "uVar44 < uVar29" (identifier "uVar44") (< "<") (identifier "uVar29")) () ")"))) (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar29 = uVar44;" (assignment_expression "uVar29 = uVar44" (identifier "uVar29") (= "=") (identifier "uVar44")) (; ";")) (expression_statement "iVar15 = iVar40;" (assignment_expression "iVar15 = iVar40" (identifier "iVar15") (= "=") (identifier "iVar40")) (; ";")) (if_statement "if (uVar22 <= uVar44) goto LAB_00031a64;" (if "if") (parenthesized_expression "(uVar22 <= uVar44)" (( "(") (binary_expression "uVar22 <= uVar44" (identifier "uVar22") (<= "<=") (identifier "uVar44")) () ")")) (goto_statement "goto LAB_00031a64;" (goto "goto") (statement_identifier "LAB_00031a64") (; ";"))) (goto_statement "goto LAB_00031a28;" (goto "goto") (statement_identifier "LAB_00031a28") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier)) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))) (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 (identifier)) arguments: (argument_list (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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))))) right: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_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: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_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: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))) (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)))))))) (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: (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))))) right: (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: (binary_expression left: (field_expression argument: (identifier) field: (field_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)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (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: (binary_expression left: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))) (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: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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))))))) (goto_statement label: (statement_identifier)))) (labeled_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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))))))) (goto_statement label: (statement_identifier)))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (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: (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))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (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: (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: (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))))))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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)))))))) (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (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: (goto_statement label: (statement_identifier))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (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)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (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: (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))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) 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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (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: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (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))))) (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)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (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: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_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)))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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: (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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) 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))))))) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) 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))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_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: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (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)))))) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (unary_expression argument: (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) 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)))))))) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_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: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) 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))) right: (number_literal))))) right: (identifier))))))))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (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)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (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)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (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: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (number_literal) 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: (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))) (goto_statement label: (statement_identifier)))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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))))))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (number_literal) 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: (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 (labeled_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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) (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: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) 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: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_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)))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (do_statement body: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_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: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (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))))))) (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: (binary_expression left: (field_expression argument: (identifier) field: (field_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)))))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (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: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))))))) (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))))))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_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))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_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)))))) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (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)))))))) (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))))))) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (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: (identifier))) (labeled_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))) (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: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))))))) (labeled_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 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: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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))))))) (labeled_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (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: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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: (identifier))) (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))))))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (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: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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))) (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)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) 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)))))) right: (number_literal)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (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: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) (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))))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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))))) (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))))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))) (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: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (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))))))) (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: (primitive_type) 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 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: (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) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (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 (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_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: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (labeled_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: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (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: (char_literal (escape_sequence)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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))))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (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))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))

int MASKED(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,uint param_4,
                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)

{
  bool bVar1;
  longlong lVar2;
  undefined1 *puVar3;
  undefined4 *puVar4;
  Elf32_Ehdr *pEVar5;
  Elf32_Ehdr *pEVar6;
  int *piVar7;
  byte *pbVar8;
  byte *pbVar9;
  char *pcVar10;
  undefined1 *puVar11;
  Elf32_Ehdr *pEVar12;
  int iVar13;
  uint *puVar14;
  int iVar15;
  int *piVar16;
  undefined4 uVar17;
  int iVar18;
  uint uVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 uVar21;
  uint uVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined1 *puVar25;
  undefined4 uVar26;
  undefined4 uVar27;
  Elf32_Ehdr *pEVar28;
  Elf32_Ehdr *in_t1;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  uint uVar29;
  undefined1 *puVar30;
  Elf32_Ehdr *pEVar31;
  Elf32_Ehdr *pEVar32;
  int *piVar33;
  Elf32_Ehdr *pEVar34;
  uint *puVar35;
  undefined *puVar36;
  undefined *puVar37;
  code *pcVar38;
  undefined1 *puVar39;
  int iVar40;
  code *pcVar41;
  code *pcVar42;
  uint uVar43;
  uint uVar44;
  undefined8 uVar45;
  undefined1 auStack_58 [24];
  int *local_30;
  int local_2c;
  
  pEVar6 = (Elf32_Ehdr *)PTR___stack_chk_guard_00097540;
  puVar30 = auStack_58;
  pEVar34 = (Elf32_Ehdr *)((int)param_3 * 4);
  local_30 = (int *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {
    iVar13 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);
    puVar30 = auStack_58 + iVar13;
    pEVar31 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar13);
  }
  else {
    pEVar31 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30,pEVar34);
  }
  uVar19 = (int)((int)param_3 + (1 - (int)param_5)) * 4;
  if (uVar19 < 0x7f01) {
    iVar13 = -(uVar19 + 7 & 0xfffffff8);
    puVar3 = puVar30 + iVar13 + 0x18;
    puVar30 = puVar30 + iVar13;
  }
  else {
    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
  }
  if (param_3 != (Elf32_Ehdr *)0x0) {
    puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
    uVar27 = *param_2;
    if (puVar11 == (undefined1 *)0x0) {
      pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
      pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
      pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
      pEVar31->e_ident_magic_str[2] = (char)uVar27;
      pEVar34 = pEVar31;
    }
    else {
      pEVar32 = pEVar31;
      puVar4 = param_2 + 1;
      do {
        pEVar32->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
        pEVar32->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
        pEVar32->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
        pEVar32->e_ident_magic_str[2] = (char)uVar27;
        puVar11 = puVar11 + -1;
        uVar27 = *puVar4;
        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;
        puVar4 = puVar4 + 1;
      } while (puVar11 != (undefined1 *)0x0);
      pEVar34 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar34[-1].e_shentsize + 1) + (int)pEVar31->e_ident_magic_str
                );
      pEVar34->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
      pEVar34->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
      pEVar34->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
      pEVar34->e_ident_magic_str[2] = (char)uVar27;
    }
  }
  *(undefined1 **)(puVar30 + 0x14) = puVar3;
  *(Elf32_Ehdr **)(puVar30 + 0x10) = param_6;
  pEVar20 = param_3;
  pEVar28 = param_5;
  FUN_00030430(pEVar31);
  pEVar32 = param_5;
  if (param_5 != (Elf32_Ehdr *)0x0) {
    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);
    pEVar20 = *(Elf32_Ehdr **)pEVar31;
    pEVar12 = param_1;
    pEVar5 = pEVar31;
    if (puVar3 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar12 = pEVar20;
        puVar3 = puVar3 + -1;
        pEVar20 = *(Elf32_Ehdr **)&pEVar5->e_ident_class;
        pEVar12 = (Elf32_Ehdr *)&pEVar12->e_ident_class;
        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
      } while (puVar3 != (undefined1 *)0x0);
      pEVar32 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);
      param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + (int)&param_5[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)param_1 = pEVar20;
  }
  piVar16 = local_30;
  if (local_30 != (int *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
  }
  if (local_2c == *(int *)pEVar6) {
    return *(int *)pEVar6;
  }
  pcVar41 = __gmpz_powm_ui;
  puVar36 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  puVar37 = puVar36 + 0x6e770;
  puVar4 = *(undefined4 **)(puVar36 + 0x66c70);
  puVar11 = puVar30 + -0xa0;
  puVar3 = puVar30 + -0xa0;
  puVar39 = puVar30 + -0xa0;
  *(undefined1 **)(puVar30 + -8) = auStack_58;
  *(undefined4 **)(puVar30 + -0x20) = param_2;
  *(code **)(puVar30 + -4) = pcVar41;
  *(undefined4 **)(puVar30 + -0x58) = puVar4;
  *(Elf32_Ehdr **)(puVar30 + -0xc) = param_6;
  *(Elf32_Ehdr **)(puVar30 + -0x10) = pEVar34;
  *(Elf32_Ehdr **)(puVar30 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar30 + -0x18) = pEVar6;
  *(Elf32_Ehdr **)(puVar30 + -0x1c) = pEVar32;
  *(Elf32_Ehdr **)(puVar30 + -0x24) = pEVar31;
  *(Elf32_Ehdr **)(puVar30 + -0x28) = param_1;
  *(undefined **)(puVar30 + -0x88) = puVar37;
  *(int **)(puVar30 + -0x54) = piVar16;
  *(Elf32_Ehdr **)(puVar30 + -0x5c) = pEVar20;
  *(Elf32_Ehdr **)(puVar30 + -0x68) = pEVar28;
  *(undefined4 *)(puVar30 + -0x2c) = *puVar4;
  uVar19 = param_4;
  if (param_4 < 0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;
    *(undefined4 *)(puVar30 + -0x4c) = *(undefined4 *)&pEVar28->e_ident_abiversion;
    pEVar34 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar30 + -0x78) = pEVar34;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      uVar22 = param_4;
      uVar45 = (**(code **)(puVar36 + 0x66d0c))();
LAB_00031228:
      uVar29 = (uint)uVar45;
      pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar45 >> 0x20) + -1);
      puVar3 = puVar11;
    }
    else {
      pEVar31 = (Elf32_Ehdr *)((int)pEVar34 * 4);
      if (param_4 == 0) {
        uVar22 = 1;
        if (pEVar34 == (Elf32_Ehdr *)0x1) {
          uVar22 = (uint)(**(int **)(puVar30 + -0x4c) != 1);
        }
        piVar16 = *(int **)(puVar30 + -0x54);
        piVar16[1] = uVar22;
        *(undefined4 *)piVar16[2] = 1;
        puVar3 = puVar30 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar30 + -0x40) = 0;
      *(word **)(puVar30 + -0x50) = &pEVar31[-1].e_shnum;
      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + (int)&pEVar31[-1].e_shnum);
      if (pEVar20 < &Elf32_Ehdr_00010000) {
        iVar13 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar20) {
          iVar13 = 0x18;
        }
        iVar15 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar20) {
          iVar15 = 1;
        }
      }
      else {
        iVar13 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar20) {
          iVar13 = 8;
        }
        iVar15 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {
          iVar15 = 0x11;
        }
      }
      param_1 = *(Elf32_Ehdr **)(puVar36 + 0x668bc);
      iVar13 = iVar13 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar15) - 1];
      *(int *)(puVar30 + -0x6c) = iVar13;
      puVar11 = puVar30 + -0xa0;
      if (iVar13 != 0) {
        if (*(int *)(puVar30 + -0x50) + 4U < 0x7f01) {
          iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);
          puVar39 = puVar30 + iVar13 + -0xa0;
          pEVar31 = (Elf32_Ehdr *)(puVar30 + iVar13 + -0x88);
        }
        else {
          pEVar31 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x66a20))(puVar30 + -0x40);
          puVar37 = *(undefined **)(puVar30 + -0x88);
        }
        (**(code **)(puVar37 + -0x7ad4))
                  (pEVar31,*(undefined4 *)(puVar30 + -0x4c),pEVar34,*(undefined4 *)(puVar30 + -0x6c)
                  );
        puVar37 = *(undefined **)(puVar30 + -0x88);
        *(Elf32_Ehdr **)(puVar30 + -0x4c) = pEVar31;
        pEVar20 = *(Elf32_Ehdr **)(pEVar31->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1);
        puVar11 = puVar39;
      }
      if (pEVar34 == (Elf32_Ehdr *)0x1) {
        pEVar28 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x4c) + *(int *)(puVar30 + -0x50) + -4);
      }
      uVar22 = (uint)pEVar20 >> 0x10;
      if (uVar22 == 0) {
        trap(7);
      }
      uVar44 = ~(uint)pEVar20 / uVar22;
      in_t2 = (uint)pEVar20 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar44);
      pEVar6 = (Elf32_Ehdr *)(~(uint)pEVar20 % uVar22 << 0x10 | 0xffff);
      uVar29 = uVar44;
      in_t1 = pEVar28;
      puVar3 = puVar11;
      if (pEVar6 < in_t3) {
        pEVar6 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));
        uVar29 = uVar44 - 1;
        if ((pEVar20 <= pEVar6) && (uVar45 = CONCAT44(pEVar6,uVar44 - 2), pEVar6 < in_t3))
        goto LAB_00031228;
      }
    }
    if (uVar22 == 0) {
      trap(7);
    }
    uVar44 = (uint)((int)pEVar6 - (int)in_t3) / uVar22;
    pEVar6 = (Elf32_Ehdr *)((uint)((int)pEVar6 - (int)in_t3) % uVar22 << 0x10 | 0xffff);
    pEVar32 = (Elf32_Ehdr *)(pEVar6->e_ident_magic_str + (int)(pEVar20->e_ident_magic_str + -2));
    uVar22 = uVar44;
    if ((pEVar6 < (Elf32_Ehdr *)(in_t2 * uVar44)) &&
       ((pEVar32 < pEVar20 || (uVar22 = uVar44 - 2, (Elf32_Ehdr *)(in_t2 * uVar44) <= pEVar32)))) {
      uVar22 = uVar44 - 1;
    }
    uVar22 = uVar29 << 0x10 | uVar22;
    pEVar6 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)pEVar20 * uVar22 + -1);
    lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);
    if (pEVar6 < pEVar28) {
      uVar29 = pEVar6 < pEVar20 ^ 1;
      pEVar32 = pEVar20;
      if (uVar29 == 0) {
        pEVar32 = (Elf32_Ehdr *)0x0;
      }
      uVar22 = (uVar22 - 1) - uVar29;
      pEVar6 = (Elf32_Ehdr *)((int)pEVar6 + (-(int)pEVar32 - (int)pEVar20));
      lVar2 = (ulonglong)uVar22 * ZEXT48(in_t1);
    }
    pEVar32 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar6 = (Elf32_Ehdr *)(pEVar32->e_ident_magic_str + (int)(pEVar6->e_ident_magic_str + -2));
    uVar29 = uVar22;
    if (((pEVar6 < pEVar32) && (uVar29 = uVar22 - 1, pEVar20 <= pEVar6)) &&
       ((pEVar20 = (Elf32_Ehdr *)(uint)(pEVar20 < pEVar6), pEVar20 != (Elf32_Ehdr *)0x0 ||
        (pEVar28 <= (Elf32_Ehdr *)lVar2)))) {
      uVar29 = uVar22 - 2;
    }
    *(uint *)(puVar30 + -0x44) = uVar29;
    pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 4);
    pEVar32 = pEVar28;
    if ((int)pEVar28 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar28;
    }
    pEVar6 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x5c) + 8);
    if ((int)pEVar32 <= (int)pEVar34) {
      if (pEVar28 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar30 + -100) = pEVar6;
        *(uint *)(puVar30 + -0x70) = *(int *)(puVar30 + -0x50) + 4U;
        pEVar31 = (Elf32_Ehdr *)(uint)(*(int *)(puVar30 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      piVar16 = *(int **)(puVar30 + -0x40);
      *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;
      if (piVar16 == (int *)0x0) goto LAB_00030c64;
      pcVar41 = *(code **)(puVar37 + -0x7a2c);
LAB_00030c08:
      (*pcVar41)();
      puVar37 = *(undefined **)(puVar30 + -0x88);
      goto LAB_00030c64;
    }
    uVar22 = *(int *)(puVar30 + -0x50) + 4;
    pEVar31 = (Elf32_Ehdr *)(uint)(uVar22 < 0x7f01);
    *(uint *)(puVar30 + -0x70) = uVar22;
    if (pEVar31 == (Elf32_Ehdr *)0x0) {
      pcVar41 = *(code **)(puVar37 + -0x7d50);
      *(Elf32_Ehdr **)(puVar30 + -0x60) = pEVar32;
      uVar27 = (*pcVar41)(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));
      pEVar32 = *(Elf32_Ehdr **)(puVar30 + -0x60);
      *(undefined4 *)(puVar30 + -100) = uVar27;
    }
    else {
      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar30 + -100) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    iVar13 = *(int *)(puVar30 + -100);
    uVar27 = *(undefined4 *)(puVar30 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar30 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;
    pEVar20 = pEVar6;
    MASKED(iVar13,pEVar6,pEVar32,uVar27);
    puVar37 = *(undefined **)(puVar30 + -0x88);
    pEVar32 = pEVar34;
    if (*(int *)(iVar13 + *(int *)(puVar30 + -0x50)) == 0) {
      iVar13 = iVar13 + *(int *)(puVar30 + -0x70);
      do {
        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar16 = (int *)(iVar13 + -8);
        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);
        iVar13 = iVar13 + -4;
      } while (*piVar16 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar34 * 8 + 4U < 0x7f01) {
      iVar13 = -((int)pEVar34 * 8 + 8);
      pEVar6 = (Elf32_Ehdr *)(puVar3 + iVar13 + 0x18);
      puVar3 = puVar3 + iVar13;
    }
    else {
      pEVar6 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);
      puVar37 = *(undefined **)(puVar30 + -0x88);
    }
    if (pEVar31 == (Elf32_Ehdr *)0x0) {
      param_6 = (Elf32_Ehdr *)
                (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40,*(undefined4 *)(puVar30 + -0x70));
      puVar37 = *(undefined **)(puVar30 + -0x88);
    }
    else {
      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar30 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar30 + -0x50) + 8U < 0x7f01) {
      iVar13 = -(*(int *)(puVar30 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar30 + -0x74) = puVar3 + iVar13 + 0x18;
      puVar3 = puVar3 + iVar13;
    }
    else {
      uVar27 = (**(code **)(puVar37 + -0x7d50))(puVar30 + -0x40);
      puVar37 = *(undefined **)(puVar30 + -0x88);
      *(undefined4 *)(puVar30 + -0x74) = uVar27;
    }
    puVar4 = *(undefined4 **)(puVar30 + -100);
    puVar25 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);
    pEVar20 = (Elf32_Ehdr *)*puVar4;
    pEVar31 = param_6;
    puVar11 = puVar25;
    if (puVar25 != (undefined1 *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)pEVar31 = pEVar20;
        puVar11 = puVar11 + -1;
        pEVar20 = (Elf32_Ehdr *)*puVar4;
        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
      } while (puVar11 != (undefined1 *)0x0);
      pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar32[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar31 = pEVar20;
    param_1 = (Elf32_Ehdr *)(0x20 - (uint)(byte)param_1->e_ident_magic_str[(param_4 >> 1) - 1]);
    iVar13 = 0x1f - (int)param_1;
    param_3 = pEVar32;
    if (iVar13 == 0) {
      if (pEVar34 == pEVar32) {
        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)pEVar34 * 4 + -1);
        iVar13 = *(int *)(puVar30 + -0x4c) + (int)pEVar34 * 4;
        do {
          pEVar20 = *(Elf32_Ehdr **)(iVar13 + -4);
          puVar25 = puVar25 + -1;
          if (*(Elf32_Ehdr **)(pbVar8 + -4) != pEVar20) {
            pcVar41 = *(code **)(puVar37 + -0x7b2c);
            if (pEVar20 < *(Elf32_Ehdr **)(pbVar8 + -4)) goto LAB_00031264;
            goto LAB_00030dd0;
          }
          pbVar8 = pbVar8 + -4;
          iVar13 = iVar13 + -4;
        } while (puVar25 != (undefined1 *)0xffffffff);
        pcVar41 = *(code **)(puVar37 + -0x7b2c);
LAB_00031264:
        pEVar20 = param_6;
        (*pcVar41)(param_6,param_6,*(undefined4 *)(puVar30 + -0x4c),pEVar32);
        puVar37 = *(undefined **)(puVar30 + -0x88);
      }
    }
    else {
      *(uint *)(puVar30 + 8) = param_4;
      param_1 = (Elf32_Ehdr *)((param_4 << ((uint)param_1 & 0x1f)) << 1);
      *(char **)(puVar30 + -0x80) = param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1;
      *(int *)(puVar30 + -0x7c) = *(int *)(puVar37 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar30 + -0x60) = 0x3fffffff;
      do {
        pEVar20 = param_6;
        (**(code **)(puVar37 + -0x7cac))(pEVar6,param_6,param_3);
        param_3 = (Elf32_Ehdr *)
                  ((int)param_3 * 2 -
                  (uint)(*(int *)(pEVar6->e_ident_magic_str +
                                 ((int)param_3 * 2 + *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));
        puVar37 = *(undefined **)(puVar30 + -0x88);
        if ((int)param_3 < (int)pEVar34) {
          puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 != (Elf32_Ehdr *)0x0) {
            uVar24._0_1_ = pEVar6->e_ident_magic_num;
            uVar24._1_1_ = pEVar6->e_ident_magic_str[0];
            uVar24._2_1_ = pEVar6->e_ident_magic_str[1];
            uVar24._3_1_ = pEVar6->e_ident_magic_str[2];
            pEVar31 = param_6;
            if (puVar11 != (undefined1 *)0x0) {
              pbVar8 = &pEVar6->e_ident_class;
              do {
                pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                pEVar31->e_ident_magic_str[2] = (char)uVar24;
                pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);
                puVar11 = puVar11 + -1;
                uVar24 = *(undefined4 *)pbVar8;
                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
                pbVar8 = (byte *)pEVar20;
              } while (puVar11 != (undefined1 *)0x0);
              pEVar31 = (Elf32_Ehdr *)
                        (param_6->e_ident_magic_str +
                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5);
            }
            pEVar31->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
            pEVar31->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
            pEVar31->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
            pEVar31->e_ident_magic_str[2] = (char)uVar24;
          }
          pcVar41 = *(code **)(puVar37 + -0x7d8c);
        }
        else {
          uVar27 = *(undefined4 *)(puVar30 + -0x4c);
          pcVar41 = *(code **)(puVar30 + -0x7c);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
          *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
          (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);
          puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
          puVar37 = *(undefined **)(puVar30 + -0x88);
          uVar27._0_1_ = pEVar6->e_ident_magic_num;
          uVar27._1_1_ = pEVar6->e_ident_magic_str[0];
          uVar27._2_1_ = pEVar6->e_ident_magic_str[1];
          uVar27._3_1_ = pEVar6->e_ident_magic_str[2];
          if (puVar11 == (undefined1 *)0x0) {
            param_6->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
            param_6->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
            param_6->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
            param_6->e_ident_magic_str[2] = (char)uVar27;
          }
          else {
            pEVar31 = param_6;
            pbVar8 = &pEVar6->e_ident_class;
            do {
              pEVar31->e_ident_magic_num = (char)((uint)uVar27 >> 0x18);
              pEVar31->e_ident_magic_str[0] = (char)((uint)uVar27 >> 0x10);
              pEVar31->e_ident_magic_str[1] = (char)((uint)uVar27 >> 8);
              pEVar31->e_ident_magic_str[2] = (char)uVar27;
              param_3 = (Elf32_Ehdr *)(pbVar8 + 4);
              puVar11 = puVar11 + -1;
              uVar27 = *(undefined4 *)pbVar8;
              pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
              pbVar8 = (byte *)param_3;
            } while (puVar11 != (undefined1 *)0x0);
            **(undefined4 **)(puVar30 + -0x80) = uVar27;
          }
          pcVar41 = *(code **)(puVar37 + -0x7d8c);
          pEVar20 = param_3;
          param_3 = pEVar34;
        }
        if ((int)param_1 < 0) {
          uVar27 = *(undefined4 *)(puVar30 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
          pEVar20 = param_6;
          (*pcVar41)(pEVar6,param_6,param_3,uVar27);
          param_3 = (Elf32_Ehdr *)
                    (pEVar32->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +
                    -(uint)(*(int *)(pEVar6->e_ident_magic_str +
                                    (int)(pEVar32->e_ident_magic_str +
                                          (int)(param_3->e_ident_magic_str + -2) +
                                         *(int *)(puVar30 + -0x60)) * 4 + -1) == 0));
          puVar37 = *(undefined **)(puVar30 + -0x88);
          if ((int)param_3 < (int)pEVar34) {
            puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
            if (param_3 != (Elf32_Ehdr *)0x0) {
              uVar26._0_1_ = pEVar6->e_ident_magic_num;
              uVar26._1_1_ = pEVar6->e_ident_magic_str[0];
              uVar26._2_1_ = pEVar6->e_ident_magic_str[1];
              uVar26._3_1_ = pEVar6->e_ident_magic_str[2];
              if (puVar11 == (undefined1 *)0x0) {
                param_6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
                param_6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
                param_6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
                param_6->e_ident_magic_str[2] = (char)uVar26;
              }
              else {
                pEVar31 = param_6;
                pbVar8 = &pEVar6->e_ident_class;
                do {
                  pEVar31->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
                  pEVar31->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
                  pEVar31->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
                  pEVar31->e_ident_magic_str[2] = (char)uVar26;
                  pEVar20 = (Elf32_Ehdr *)(pbVar8 + 4);
                  puVar11 = puVar11 + -1;
                  uVar26 = *(undefined4 *)pbVar8;
                  pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
                  pbVar8 = (byte *)pEVar20;
                } while (puVar11 != (undefined1 *)0x0);
                *(undefined4 *)
                 (param_6->e_ident_magic_str +
                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar30 + -0x60) * 4 + -5) = uVar26;
              }
            }
          }
          else {
            uVar27 = *(undefined4 *)(puVar30 + -0x4c);
            pcVar41 = *(code **)(puVar30 + -0x7c);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
            *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
            (*pcVar41)(pEVar6,param_3,uVar27,pEVar34);
            puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
            puVar37 = *(undefined **)(puVar30 + -0x88);
            pEVar20 = *(Elf32_Ehdr **)pEVar6;
            pEVar28 = param_6;
            pEVar31 = pEVar6;
            if (puVar11 == (undefined1 *)0x0) {
              *(Elf32_Ehdr **)param_6 = pEVar20;
              param_3 = pEVar34;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar28 = pEVar20;
                puVar11 = puVar11 + -1;
                pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;
                pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
                pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
              } while (puVar11 != (undefined1 *)0x0);
              **(undefined4 **)(puVar30 + -0x80) = pEVar20;
              param_3 = pEVar34;
            }
          }
        }
        iVar13 = iVar13 + -1;
        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);
      } while (iVar13 != 0);
      param_4 = *(uint *)(puVar30 + 8);
    }
LAB_00030dd0:
    pEVar31 = (Elf32_Ehdr *)0x0;
    pEVar28 = *(Elf32_Ehdr **)(puVar30 + -0x6c);
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < (int)param_3) &&
         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {
        pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
        do {
          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 == (Elf32_Ehdr *)0x0) {
            uVar19 = param_4 & 1;
            piVar16 = *(int **)(puVar30 + -0x54);
            if ((uVar19 == 0) ||
               (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          pcVar10 = (char *)(pbVar8 + -8);
          pbVar8 = pbVar8 + -4;
        } while (*(int *)pcVar10 == 0);
      }
      uVar19 = param_4 & 1;
      piVar16 = *(int **)(puVar30 + -0x54);
      if ((uVar19 == 0) ||
         (piVar16 = *(int **)(puVar30 + -0x54), -1 < *(int *)(*(int *)(puVar30 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar41 = *(code **)(puVar37 + -0x7a84);
        if (*piVar16 < (int)param_3) goto LAB_00031474;
LAB_00030e44:
        uVar19 = param_4 & 1;
        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x68) + 8);
        pEVar20 = param_1;
        iVar13 = (**(code **)(puVar37 + -0x7b2c))(param_6,param_1,param_6,param_3);
        puVar37 = *(undefined **)(puVar30 + -0x88);
        if (iVar13 == 0) {
LAB_000314a0:
          if ((param_6 == param_1) || ((int)pEVar34 <= (int)param_3)) goto LAB_00031130;
          pEVar20 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);
          pbVar9 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
          pbVar8 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
          do {
            uVar27 = *(undefined4 *)pbVar9;
            pbVar9 = pbVar9 + 4;
            *(undefined4 *)pbVar8 = uVar27;
            pbVar8 = pbVar8 + 4;
          } while (pEVar20 != (Elf32_Ehdr *)pbVar9);
          iVar13 = *(int *)(puVar30 + -0x50);
        }
        else {
          if ((int)param_3 < (int)pEVar34) {
            pbVar8 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
            pbVar9 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
            pEVar20 = *(Elf32_Ehdr **)pbVar8;
            *(undefined1 **)pbVar9 = (undefined1 *)((int)&pEVar20[-1].e_shstrndx + 1);
            pEVar31 = pEVar20;
            while (param_3 = (Elf32_Ehdr *)param_3->e_ident_magic_str, pEVar31 == (Elf32_Ehdr *)0x0)
            {
              pbVar9 = pbVar9 + 4;
              if (pEVar34 == param_3) goto LAB_00031130;
              pEVar31 = *(Elf32_Ehdr **)(pbVar8 + 4);
              pbVar8 = pbVar8 + 4;
              pEVar20 = (Elf32_Ehdr *)((int)&pEVar31[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar9 = pEVar20;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar13 = *(int *)(puVar30 + -0x50);
        }
        pEVar31 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar13 + -1);
        iVar13._0_1_ = pEVar31->e_ident_magic_num;
        iVar13._1_1_ = pEVar31->e_ident_magic_str[0];
        iVar13._2_1_ = pEVar31->e_ident_magic_str[1];
        iVar13._3_1_ = pEVar31->e_ident_magic_str[2];
        if (iVar13 == 0) {
          iVar13 = *(int *)(puVar30 + -0x78);
          pbVar8 = (byte *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x70) + -1);
          do {
            iVar13 = iVar13 + -1;
            if (iVar13 == 0) {
              piVar16 = *(int **)(puVar30 + -0x54);
              goto LAB_00030f08;
            }
            pcVar10 = (char *)(pbVar8 + -8);
            pbVar8 = pbVar8 + -4;
          } while (*(int *)pcVar10 == 0);
          *(int *)(puVar30 + -0x78) = iVar13;
        }
        if (**(int **)(puVar30 + -0x54) < *(int *)(puVar30 + -0x78)) {
          param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);
          pcVar41 = *(code **)(puVar37 + -0x7a84);
LAB_00031474:
          pEVar20 = param_3;
          (*pcVar41)(*(undefined4 *)(puVar30 + -0x54));
          puVar37 = *(undefined **)(puVar30 + -0x88);
          goto LAB_00030e44;
        }
        param_3 = *(Elf32_Ehdr **)(puVar30 + -0x78);
        *(Elf32_Ehdr **)(*(int *)(puVar30 + -0x54) + 4) = param_3;
      }
      uVar19 = param_4 & 1;
      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      pEVar20 = *(Elf32_Ehdr **)param_6;
      puVar23 = *(undefined4 **)(*(int *)(puVar30 + -0x54) + 8);
      puVar4 = puVar23;
      pEVar28 = param_6;
      if (puVar11 != (undefined1 *)0x0) {
        do {
          *puVar4 = pEVar20;
          puVar11 = puVar11 + -1;
          pEVar20 = *(Elf32_Ehdr **)&pEVar28->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
        } while (puVar11 != (undefined1 *)0x0);
        puVar23 = puVar23 + (int)((int)&param_3[-1].e_shstrndx + 1);
      }
      *puVar23 = pEVar20;
    }
    else {
      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar6,param_6,param_3,pEVar28);
      iVar18 = *(int *)(puVar30 + -0x88);
      iVar13 = (int)param_3 * 4;
      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar15 != 0) - 1));
      *(int *)(pEVar6->e_ident_magic_str + iVar13 + -1) = iVar15;
      param_1 = pEVar28;
      if ((int)pEVar34 <= (int)param_3) {
        uVar27 = *(undefined4 *)(puVar30 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar30 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar30 + -0x44;
        FUN_00030430(pEVar6,param_3,uVar27,pEVar34);
        puVar11 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
        iVar18 = *(int *)(puVar30 + -0x88);
        uVar17._0_1_ = pEVar6->e_ident_magic_num;
        uVar17._1_1_ = pEVar6->e_ident_magic_str[0];
        uVar17._2_1_ = pEVar6->e_ident_magic_str[1];
        uVar17._3_1_ = pEVar6->e_ident_magic_str[2];
        pEVar28 = param_6;
        pEVar20 = pEVar6;
        if (puVar11 == (undefined1 *)0x0) {
          param_6->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
          param_6->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
          param_6->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
          param_6->e_ident_magic_str[2] = (char)uVar17;
          param_3 = pEVar34;
        }
        else {
          do {
            pEVar28->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
            pEVar28->e_ident_magic_str[2] = (char)uVar17;
            puVar11 = puVar11 + -1;
            uVar17._0_1_ = pEVar20->e_ident_class;
            uVar17._1_1_ = pEVar20->e_ident_data;
            uVar17._2_1_ = pEVar20->e_ident_version;
            uVar17._3_1_ = pEVar20->e_ident_osabi;
            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (puVar11 != (undefined1 *)0x0);
          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar30 + -0x50) + -1) = uVar17;
          param_3 = pEVar34;
        }
LAB_000312bc:
        pEVar20 = param_6;
        (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar30 + -0x6c));
        puVar37 = *(undefined **)(puVar30 + -0x88);
        goto LAB_00030ddc;
      }
      puVar11 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      if (param_3 != (Elf32_Ehdr *)0x0) {
        uVar21._0_1_ = pEVar6->e_ident_magic_num;
        uVar21._1_1_ = pEVar6->e_ident_magic_str[0];
        uVar21._2_1_ = pEVar6->e_ident_magic_str[1];
        uVar21._3_1_ = pEVar6->e_ident_magic_str[2];
        pEVar28 = param_6;
        pEVar20 = pEVar6;
        if (puVar11 != (undefined1 *)0x0) {
          do {
            pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
            pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
            pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
            pEVar28->e_ident_magic_str[2] = (char)uVar21;
            puVar11 = puVar11 + -1;
            uVar21._0_1_ = pEVar20->e_ident_class;
            uVar21._1_1_ = pEVar20->e_ident_data;
            uVar21._2_1_ = pEVar20->e_ident_version;
            uVar21._3_1_ = pEVar20->e_ident_osabi;
            pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (puVar11 != (undefined1 *)0x0);
          pEVar28 = (Elf32_Ehdr *)
                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);
        }
        pEVar28->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
        pEVar28->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
        pEVar28->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
        pEVar28->e_ident_magic_str[2] = (char)uVar21;
        goto LAB_000312bc;
      }
      pEVar20 = param_6;
      (**(code **)(iVar18 + -0x7ae0))(param_6,param_6,0,pEVar28);
      puVar37 = *(undefined **)(puVar30 + -0x88);
      uVar19 = param_4;
LAB_00030f04:
      piVar16 = *(int **)(puVar30 + -0x54);
LAB_00030f08:
      if (*piVar16 < 0) {
        param_1 = *(Elf32_Ehdr **)(puVar30 + -0x54);
        pEVar20 = (Elf32_Ehdr *)0x0;
        (**(code **)(puVar37 + -0x7a84))(param_1);
        puVar37 = *(undefined **)(puVar30 + -0x88);
        param_1->e_ident_class = 0;
        param_1->e_ident_data = 0;
        param_1->e_ident_version = 0;
        param_1->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar30 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    piVar16 = *(int **)(puVar30 + -0x40);
    piVar7 = *(int **)(puVar30 + -0x58);
    if (piVar16 != (int *)0x0) {
      pcVar41 = *(code **)(puVar37 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar41 = *(code **)(puVar36 + 0x66c10);
    *(uint *)(puVar30 + -0x3c) = param_4;
    *(undefined4 *)(puVar30 + -0x34) = 1;
    *(undefined1 **)(puVar30 + -0x30) = puVar30 + -0x3c;
    (*pcVar41)();
    puVar37 = *(undefined **)(puVar30 + -0x88);
LAB_00030c64:
    piVar7 = *(int **)(puVar30 + -0x58);
  }
  if (*(int *)(puVar30 + -0x2c) == *piVar7) {
    return *piVar7;
  }
  pcVar41 = *(code **)(puVar37 + -0x7b70);
  uVar27 = 0x3153c;
  (*pcVar41)();
  pcVar38 = pcVar41 + 0x6db00;
  puVar11 = puVar3 + -0x38;
  *(uint *)(puVar3 + -0x10) = uVar19;
  piVar7 = *(int **)(pcVar41 + 0x66000);
  *(undefined1 **)(puVar3 + -8) = puVar30 + -0xa0;
  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar31;
  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;
  *(undefined4 *)(puVar3 + -4) = uVar27;
  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar32;
  *(code **)(puVar3 + -0x28) = pcVar38;
  *(int *)(puVar3 + -0x1c) = *piVar7;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {
    if (*piVar16 < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {
      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar41 + 0x6607c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar32 = (Elf32_Ehdr *)piVar16[2];
    }
    iVar13 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);
    pcVar38 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);
    uVar19 = 8;
    do {
      uVar22 = uVar19;
      pEVar31 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar19 = uVar22 - 1;
    } while (pEVar31 < pEVar20);
    if (uVar22 == 0) {
      trap(7);
    }
    uVar19 = ((iVar13 + 1U) / uVar22 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar19 < 0x7f01) {
      iVar13 = -(uVar19 + 7 & 0xfffffff8);
      puVar11 = puVar3 + iVar13 + -0x38;
      pEVar31 = (Elf32_Ehdr *)(puVar3 + iVar13 + -0x28);
    }
    else {
      pEVar31 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    iVar15 = 0;
    uVar29 = 1;
    iVar13 = 0;
    uVar19 = 0;
    uVar22 = 6;
    do {
      uVar43 = uVar19 + 1;
      iVar18 = iVar13;
      uVar44 = uVar22;
      if ((uVar29 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {
        uVar44 = (uVar43 & 1) + 1 + uVar43 * 3;
        if ((int)((ulonglong)uVar22 * ZEXT48(pEVar20) >> 0x20) == 0) {
          uVar44 = uVar22 * uVar44;
        }
        else {
          iVar18 = iVar13 + 1;
          *(uint *)(pEVar31->e_ident_magic_str + iVar13 * 4 + -1) = uVar22;
        }
      }
      uVar29 = uVar29 * 2 - ((int)uVar29 >> 0x1f);
      bVar1 = uVar19 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;
      iVar15 = iVar15 + (uVar29 & 1);
      iVar13 = iVar18;
      uVar19 = uVar43;
      uVar22 = uVar44;
    } while (bVar1);
    if (iVar18 == 0) {
      *(uint *)piVar16[2] = uVar44;
      piVar16[1] = 1;
    }
    else {
      pcVar41 = *(code **)(pcVar38 + -0x7dbc);
      *(uint *)(pEVar31->e_ident_magic_str + iVar18 * 4 + -1) = uVar44;
      (*pcVar41)(piVar16,pEVar31,iVar18 + 1);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    piVar33 = *(int **)(puVar3 + -0x20);
    if (piVar33 != (int *)0x0) {
      (**(code **)(pcVar38 + -0x7a2c))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar28 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar41 + 0x65b2c) + -0x2a60);
    *(undefined4 *)piVar16[2] = *(undefined4 *)pEVar28;
    piVar16[1] = 1;
    piVar33 = piVar16;
    pEVar31 = pEVar20;
    pEVar20 = pEVar28;
    puVar11 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar7) {
    return *piVar7;
  }
  pcVar41 = *(code **)(pcVar38 + -0x7b70);
  pcVar42 = __gmpz_probab_prime_p;
  (*pcVar41)();
  pcVar38 = *(code **)(pcVar41 + 0x659a8);
  *(int **)(puVar11 + -0x24) = piVar16;
  *(int **)(puVar11 + -0x20) = piVar7;
  piVar16 = *(int **)(pcVar41 + 0x65da0);
  *(Elf32_Ehdr **)(puVar11 + -0x18) = pEVar6;
  *(Elf32_Ehdr **)(puVar11 + -0x1c) = pEVar32;
  pEVar6 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar11 + -0x90) = pcVar41 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar11 + -0x10) = pEVar34;
  *(Elf32_Ehdr **)(puVar11 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar11 + -0x28) = pEVar20;
  *(code **)(puVar11 + -4) = pcVar42;
  *(undefined1 **)(puVar11 + -8) = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar11 + -0xc) = param_6;
  *(int *)(puVar11 + -0x2c) = *piVar16;
  iVar13 = (*pcVar38)();
  puVar35 = (uint *)piVar33[2];
  iVar15 = *(int *)(puVar11 + -0x90);
  pEVar34 = (Elf32_Ehdr *)piVar33[1];
  uVar19 = *puVar35;
  if (iVar13 < 1) {
    pEVar6 = (Elf32_Ehdr *)0xf4240;
    iVar13 = (**(code **)(iVar15 + -0x7ab8))(piVar33);
    iVar15 = *(int *)(puVar11 + -0x90);
    if (iVar13 < 1) {
      iVar13 = 0;
      if (pEVar34 != (Elf32_Ehdr *)0x0) {
        if (uVar19 < 3) {
          iVar13 = 2;
          if (uVar19 != 2) {
            iVar13 = 0;
          }
        }
        else {
          uVar22 = 3;
          if ((uVar19 & 1) != 0) {
            do {
              if (uVar22 == 0) {
                trap(7);
              }
              uVar29 = uVar19 % uVar22;
              if (uVar19 / uVar22 < uVar22) {
                iVar13 = 2;
                goto LAB_00031824;
              }
              uVar22 = uVar22 + 2;
            } while (uVar29 != 0);
            iVar13 = 0;
          }
        }
      }
      goto LAB_00031824;
    }
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;
    *(uint **)(puVar11 + -0x6c) = puVar35;
    piVar33 = (int *)(puVar11 + -0x74);
    *(Elf32_Ehdr **)(puVar11 + -0x70) = pEVar34;
  }
  if (pEVar34 != (Elf32_Ehdr *)0x0) {
    uVar19 = uVar19 & 1;
    iVar13 = 0;
    if (uVar19 == 0) goto LAB_00031824;
    pEVar6 = pEVar34;
    if ((int)pEVar34 < 10) {
      uVar22 = (**(code **)(iVar15 + -0x7c24))(puVar35,pEVar34,0xc0cfd797,0x53e5645c);
      iVar15 = *(int *)(puVar11 + -0x90);
    }
    else {
      uVar22 = (**(code **)(iVar15 + -0x7b80))(puVar35,pEVar34,0xc0cfd797);
      iVar15 = *(int *)(puVar11 + -0x90);
    }
    if ((((((uVar22 != (uVar22 / 3) * 3) && (uVar22 != (uVar22 / 5) * 5)) &&
          (uVar22 != (uVar22 / 7) * 7)) &&
         ((uVar22 != (uVar22 / 0xb) * 0xb && (uVar22 != (uVar22 / 0xd) * 0xd)))) &&
        ((uVar22 != (uVar22 / 0x11) * 0x11 &&
         ((uVar22 != (uVar22 / 0x13) * 0x13 && (uVar22 != (uVar22 / 0x17) * 0x17)))))) &&
       (uVar22 != (uVar22 / 0x1d) * 0x1d)) {
      uVar22 = (**(code **)(iVar15 + -0x7f14))(piVar33,2);
      iVar13 = *(int *)(puVar11 + -0x90);
      if (0x1f < uVar22) {
        iVar18 = 0;
        puVar30 = puVar11 + -0x68;
        uVar29 = 0x1f;
        iVar15 = 0;
LAB_00031a28:
        uVar44 = 3;
        do {
          if (uVar44 == 0) {
            trap(7);
          }
          uVar43 = uVar29 % uVar44;
          if (uVar29 / uVar44 < uVar44) {
            if (iVar18 * uVar19 + (int)((ulonglong)uVar19 * (ulonglong)uVar29 >> 0x20) == 0) {
              iVar40 = iVar15 + 1;
              uVar19 = (uint)((ulonglong)uVar19 * (ulonglong)uVar29);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar11 + -0x7c) = puVar30;
            *(int *)(puVar11 + -0x80) = iVar18;
            *(uint *)(puVar11 + -0x84) = uVar22;
            if ((int)pEVar34 < 10) {
              uVar19 = (**(code **)(iVar13 + -0x7c68))(puVar35,pEVar34,uVar19,0);
              iVar13 = *(int *)(puVar11 + -0x90);
              uVar22 = *(uint *)(puVar11 + -0x84);
              iVar18 = *(int *)(puVar11 + -0x80);
              puVar30 = *(undefined1 **)(puVar11 + -0x7c);
            }
            else {
              uVar19 = (**(code **)(iVar13 + -0x7b80))(puVar35,pEVar34,uVar19);
              iVar13 = *(int *)(puVar11 + -0x90);
              puVar30 = *(undefined1 **)(puVar11 + -0x7c);
              iVar18 = *(int *)(puVar11 + -0x80);
              uVar22 = *(uint *)(puVar11 + -0x84);
            }
            puVar14 = (uint *)(puVar30 + (iVar15 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar44 = uVar44 + 2;
          iVar40 = iVar15;
        } while (uVar43 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      iVar13 = (**(code **)(iVar13 + -0x7d48))(piVar33);
      iVar15 = *(int *)(puVar11 + -0x90);
      pEVar6 = pEVar31;
      goto LAB_00031824;
    }
  }
  iVar13 = 0;
LAB_00031824:
  iVar18 = *(int *)(puVar11 + -0x2c);
  if (iVar18 == *piVar16) {
    return iVar13;
  }
LAB_00031c58:
  pcVar41 = *(code **)(iVar15 + -0x7b70);
  uVar27 = 0x31c64;
  (*pcVar41)();
  pcVar38 = pcVar41 + 0x6d3d0;
  pcVar10 = *(char **)(pcVar41 + 0x65518);
  *(int **)(puVar11 + -0xa8) = piVar16;
  *(Elf32_Ehdr **)(puVar11 + -0xac) = pEVar34;
  *(code **)(puVar11 + -0xb8) = pcVar38;
  *(undefined4 *)(puVar11 + -0xa4) = uVar27;
  if (*pcVar10 == '\0') {
    pcVar38 = *(code **)(pcVar41 + 0x65990);
    uVar27 = *(undefined4 *)(pcVar41 + 0x6560c);
    *pcVar10 = '\x01';
    (*pcVar38)(uVar27);
    pcVar38 = *(code **)(puVar11 + -0xb8);
  }
  pEVar34 = pEVar6;
  if ((int)pEVar6 < 0) {
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar6;
  }
  iVar13 = (**(code **)(pcVar38 + -0x7f7c))
                     (iVar18,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);
  if ((int)pEVar6 < 0) {
    iVar13 = -*(int *)(iVar18 + 4);
    *(int *)(iVar18 + 4) = iVar13;
  }
  return iVar13;
LAB_00031bcc:
  iVar15 = iVar15 + -1;
  if (iVar15 == -1) goto code_r0x00031bd8;
  uVar44 = *puVar14;
  if (uVar44 == 0) {
    trap(7);
  }
  puVar14 = puVar14 + -1;
  if (uVar19 % uVar44 == 0) {
    pEVar6 = pEVar34;
    iVar18 = (**(code **)(iVar13 + -0x7b80))(puVar35);
    iVar13 = 0;
    iVar15 = *(int *)(puVar11 + -0x90);
    if (iVar18 == 0) goto LAB_00031824;
    pEVar6 = (Elf32_Ehdr *)0x81;
    iVar18 = *(int *)(iVar15 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar15 + -0x7c20))(iVar18,0x81,*(int *)(iVar15 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar40 = 1;
  iVar15 = 0;
  uVar19 = uVar29;
LAB_00031b4c:
  *(uint *)(puVar11 + iVar15 * 4 + -0x68) = uVar29;
LAB_00031a4c:
  uVar44 = uVar29 + 2;
  iVar18 = (uint)(uVar44 < uVar29) + iVar18;
  uVar29 = uVar44;
  iVar15 = iVar40;
  if (uVar22 <= uVar44) goto LAB_00031a64;
  goto LAB_00031a28;
}

